0

特定の条件で、モジュールのユーザー インターフェイス側に警告メッセージを表示したい。そのために、このようなコードを記述しました。

raise osv.except_osv(('Warning!'), ("Entered Quantity is greater than quantity on source."))

しかし、ユーザーインターフェイス側のその状態では、読み込み中の画像が表示されるだけです。

コンソールで、このようなエラーが発生しました。

2013-06-10 09:45:53,612 364
ERROR None openerp.netsvc: Warning! Entered Quantity is greater than quantity on source.
Traceback (most recent call last):
   File "C:\OpenErp\openerp\openobject-server\openerp\netsvc.py", line 361, in dispatch_rpc
     result = ExportService.getService(service_name).dispatch(method, params)
   File "C:\OpenErp\openerp\openobject-server\openerp\service\web_services.py", line 585, in dispatch
     res = fn(db, uid, *params)
   File "C:\OpenErp\openerp\openobject-server\openerp\osv\osv.py", line 167, in execute_kw
     return self.execute(db, uid, obj, method, *args, **kw or {})
   File "C:\OpenErp\openerp\openobject-server\openerp\osv\osv.py", line 121, in wrapper
     return f(self, dbname, *args, **kwargs)
   File "C:\OpenErp\openerp\openobject-server\openerp\osv\osv.py", line 176, in execute
     res = self.execute_cr(cr, uid, obj, method, *args, **kw)
   File "C:\OpenErp\openerp\openobject-server\openerp\osv\osv.py", line 164, in execute_cr
     return getattr(object, method)(cr, uid, *args, **kw)
   File "C:\OpenErp\openerp\openobject-addons\mat_mgmt\mat_mgmt.py", line 101, in button_confirm
     raise osv.except_osv(('Warning!'), ("Entered Quantity is greater than quantity on source."))
except_osv:
  ('Warning!', 'Entered Quantity is greater than quantity on source.')
c:\openerp\openerp\openobject-addons\mat_mgmt\mat_mgmt.py(101)button_confirm()
-> raise osv.except_osv(('Warning!'), ("Entered Quantity is greater than quantity on source."))

ユーザーインターフェース側に警告メッセージを表示したい。

4

4 に答える 4

0

警告メッセージを表示するだけの場合は、action_warnクライアント アクションの使用を検討してください。サーバー アクションから次のような辞書を返すことで呼び出します。

{
    'type': 'ir.actions.client',
    'tag': 'action_warn',
    'name': 'Warning',
    'params': {
       'title': 'Warning!',
       'text': 'Entered Quantity is greater than quantity on source.',
       'sticky': True
    }
}

ただし、実際にフォームの送信を停止するものが必要な場合は、これは探しているよりも上品かもしれません。ユーザーのブラウザにGrowlのような通知を表示します。しかし、通知の形でユーザーに何らかのフィードバックを提供することだけが目的の場合は、これまたはaction_info( と同じ方法で呼び出されますaction_warn) のどちらかがうまくいくはずです。

私のブログにもっと完全な例がありますが、うまくいけば、これが正しい方向に進むのに十分です.

于 2014-12-30T07:17:28.047 に答える
-1

以下のコードで確認できますか

raise osv.except_osv('Warning!', "Entered Quantity is greater than quantity on source.")

翻訳されたメッセージが必要な場合は、_('meesage....') を試してください。

ただし、インポートステートメントをお見逃しなく

from openerp.tools.translate import _

于 2013-06-10T06:25:02.623 に答える