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

2

首先你需要导入

from openerp.tools.translate import _

然后,您可以完成工作!

raise osv.except_osv(_(u'TitleMessage'), _(u'BodyMessage'))
于 2013-11-27T21:18:35.703 回答
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
    }
}

但是,如果您想要一些实际上会阻止表单提交的东西,这可能比您要寻找的更文雅。它在用户的浏览器中显示类似咆哮的通知。但是,如果您只想以通知的形式向用户提供一些反馈,那么这个或action_info(以与 相同的方式调用action_warn)应该做得很好。

我的博客上有一个更完整的例子,但希望这足以让你朝着正确的方向前进。

于 2014-12-30T07:17:28.047 回答
0

我遇到了同样的问题,我通过以下方式解决了:

from odoo import models, fields, api, _, osv # here add osv

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

我做了这个 b-因为你会在 odoo/osv/osv.py 文件中找到函数

于 2018-05-29T14:17:00.857 回答
-1

你可以用下面的代码检查

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

如果您需要翻译消息,请尝试 _('meesage....')

但是不要错过import语句

from openerp.tools.translate import _

于 2013-06-10T06:25:02.623 回答