Odoo 9自定义模块,带有现场验证

时间:2016-04-28 19:48:47

标签: python openerp odoo-9

我正在使用新模块来自定义和现有应用。模块安装,字段正确显示并正确保存。问题是我的自定义约束被忽略了。

以下是来自models.py文件的完整代码:

# -*- coding: utf-8 -*-

from openerp import models, fields, api
import logging
_logger = logging.getLogger(__name__)
# class myfieldsinsaleorder(models.Model):
#     _name = 'myfieldsinsaleorder.myfieldsinsaleorder'

class partnercustomfields(models.Model):
    _inherit = "res.partner"

    def test(self):
        return False

    x_vend_account_ref = fields.Char(string="Our Account ID",
                                  help='Our account number with this vendor.',
                                  size=20)
    _constraints = [(test,"Invalid Data",[x_vend_account_ref])]

2 个答案:

答案 0 :(得分:1)

感谢mokiSRB让我走上正轨。他建议使用 @ api.constrains是正确的,但我的目标返回值也是错误的。

在其他模块中查看@ api.constrains的其他用法时,我发现引发了UserError。这样可行,但该方法已弃用。尽管我可以收集正确的错误引发方法是ValidationError,因为这会产生预期的结果。

@api.constrains('x_vend_account_ref')
def customvalidation(self):
    raise ValidationError('The Field Is Not valid')

答案 1 :(得分:0)

约束应该像这样使用:

@api.constrains("x_vend_account_ref") def test(self): return False