一、字段增加唯一约束
前台违反约束效果:
后台模型中定义代码:
括号中三个参数依次是约束定义名、约束定义内容、弹出提醒内容。
在_sql_constraints定义中可以填写多个字段的约束定义,每个用()包裹,之间用逗号分隔开即可。
name = fields.Char(string="Name", copy=False) # 流水号
_sql_constraints = [('dec_name_uniq', 'unique(name)', 'error message dec name uniq')]
二、重写字段内的create()和write()方法
class RTTag(models.Model):
"""
标签
"""
_inherit = 'rt.tag'
# _sql_constraints = [
# ('name_key', 'UNIQUE (name)', '该标签已存在')
# ]
@api.model
def create(self, vals):
self.check_values(tag_type=vals.get('rt_tag_group'), vals=vals)
return super(RTTag, self).create(vals)
@api.multi
def write(self, vals):
self.check_values(tag_type=vals.get('rt_tag_group') or self.rt_tag_group, vals=vals)
return super(RTTag, self).write(vals)