在旧版本的odoo(openerp 7)中,我曾经做过这样的事情:
@api.multi
@api.onchange('my_field')
def my_field_change(self, cr, uid, partner_ids, context=None):
if condition is True:
return {
'warning': {'title': _('Error'), 'message': _('Error message'),},
'value': { 'my_field': new_value },
}
如果我想在 odoo 9 中执行此操作,我有以下代码:
@api.multi
@api.onchange('my_field')
def my_field_change(self):
if condition is True:
return {
'warning': {'title': _('Error'), 'message': _('Error message'),},
'value': { 'my_field': new_value },
}
显示警告窗口,但忽略值字段。
如何更改该字段的值?
最佳答案
在 odoo Onchange 方法中,您无法返回与旧版本 odoo 相同的值。
Onchange 方法只会返回警告和域。
@api.multi
@api.onchange('my_field')
def my_field_change(self):
self.field=value
return {
'warning': {'title': _('Error'), 'message': _('Error message'),},
}
在 Odoo 新 api 中,不需要在 dict 中返回值,只需在相关字段中赋值即可。
例如:sale.field=value
这可能对你有帮助。
关于odoo - 如何在 onchange 方法内结合警告消息和更新字段值?在奥多 9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43260350/