[odoo10]如果在发出odoo警告的同时保存记录?

asl*_*a22 2 odoo odoo-10

在我的自定义模块中,我添加了

application_no = fields.Char(string="Application Number")
Run Code Online (Sandbox Code Playgroud)
_sql_constraints = [
 ('application_no_unique',
 'UNIQUE(application_no)',
 "Application Number already exist.Please specify another number or make sure the application number is correct"),
Run Code Online (Sandbox Code Playgroud)

]

我使用sql约束来显示警告.

它工作正常,当我们输入重复的应用程序编号时,它会显示警告并阻止保存记录的访问权限


警告发生时如何保存记录?

注意


我认为SQL约束不适合这个.是这个功能的任何其他方法?

Day*_*ana 6

我认为它可能会帮助您使用onchange方法:

@api.onchange('your_field')
def your_onchange(self):
    count=self.search_count([('your_field','=',self.your_field)])
    return {
        'warning': {'title': _('Warning'), 'message': _('Warning message'),},
         } 
Run Code Online (Sandbox Code Playgroud)

这将显示消息,您可以毫无问题地保存.我希望这对你有帮助.

  • 您不需要`@api.multi`.在之前的示例中,self对应于当前在表单上编辑的记录.取自http://odoo-new-api-guide-line.readthedocs.io/en/latest/decorator.html#api-onchange. (3认同)