Web 如何在Odoo网站上发出警告信息

Web 如何在Odoo网站上发出警告信息,web,warnings,openerp,Web,Warnings,Openerp,在Odoo8中,我使用一个自定义模块检查VAT是否唯一,使用@api.constraints('VAT','parent\u id','company\u id'),并在VAT已经存在时发出警告 但在网站购买结帐表中,我让客户输入增值税。当重复输入VAT时,我会得到一个500内部服务器错误,因为网站没有提供发出警告的方法 我应该如何实现警告、弹出窗口或类似功能以避免这些内部服务器错误?在发送表单数据之前,单击“提交”按钮时,可以使用JSON-RPC调用后端 在python中创建新的控制器以验证V

在Odoo8中,我使用一个自定义模块检查VAT是否唯一,使用@api.constraints('VAT','parent\u id','company\u id'),并在VAT已经存在时发出警告

但在网站购买结帐表中,我让客户输入增值税。当重复输入VAT时,我会得到一个500内部服务器错误,因为网站没有提供发出警告的方法


我应该如何实现警告、弹出窗口或类似功能以避免这些内部服务器错误?

在发送表单数据之前,单击“提交”按钮时,可以使用JSON-RPC调用后端

  • 在python中创建新的控制器以验证VAT:

    @http.route(['/vat/validator'], type='json', auth="public", website=True)
    def vat_validator(self, vat):
        # Your validation code here
        return 'OK'
    
  • 创建用于调用验证程序的JS方法:

    (function() {
         'use strict';
    
        function vat_validator(vat) {
            openerp.jsonRpc('/vat/validator', 'call', {'vat': vat}).then(function(result) {
                // Your JS code here for checking backend validator result
            })        
        }
    })();
    
  • 设置一个表单验证JS方法,如下所示:


  • 谢谢安东尼奥。所以我应该为网站编写一个不同的验证器,而不是扩展或修改当前的验证器模块,或者只是用http.route装饰我的当前验证?您可以使用当前的vat验证器模块,例如调用res.partner.simple\u vat\u check方法,或者为新控制器编写另一个验证器。