我正在使用新模块来自定义和现有应用。模块安装,字段正确显示并正确保存。问题是我的自定义约束被忽略了。
以下是来自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])]
答案 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