Odoo 字段设置唯一不重复

一、字段增加唯一约束

前台违反约束效果:

后台模型中定义代码: 

括号中三个参数依次是约束定义名、约束定义内容、弹出提醒内容。

在_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)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值