1.使用raise检查判断逻辑,主动抛出符合判断条件的提示语句
@api.multi
def workflow_submit(self):
if self.is_write_num:
raise UserError(_('Please enter Num!'))
if not self.order_line:
raise UserError(_('Please enter order line!'))
ps:raise抛出错误提示会中断方法的代码执行
2.使用return抛出错误提示(返回值)
@api.onchange('related')
def _onchange_related(self):
if self.related:
try:
field = self._related_field()
except UserError as e:
return {'warning': {'title': _("Warning"), 'message': e.message}}
ps:用于onchange中,提示错误警告信息
# Odoo 13 onchange 使用规范
# 在 onchange 方法中调用的检测函数,不能直接 raise error,否则会导致界面缓存值与显示值不一致。需将错误以 waring 的形式抛出,如:
@api.onchange('related')
def _onchange_related(self):
if self.related:
try:
field = self._related_field()
except UserError as e:
return {'warning': {'title': _("Warning"), 'message': e}}
ps: 界面按钮的二次确认 (追加 confirm=“内容”)
<button name="unlink" string="Delete" class="btn btn-danger" confirm="Are you sure to delete this record?" type="object" states="draft"/>