odoo 数据唯一约束及弹窗提示

处理客户名称重复

方法1:使用数据库唯一约束

_sql_constraints = [
    ('name_uniq', 'unique (name)', "该客户已存在"),
]

重启服务-->升级应用模块,在数据库中就可以看到唯一约束了。

输入数据,测试验证,效果如下:

注意:如果历史数据有重复的,需要先处理掉历史数据,否则唯一约束不生效

方法2:使用python程序控制(@api.contrains)

@api.constrains('name')
def _check_name_unique(self):
    customer = self.env['res.partner'].search([('name','=',self.name)])
    if len(customer)>0:
        return {
            'type': 'ir.actions.client',
            'tag': 'display_notification',
            'params': {
                'title': '提示信息',
                'message': '数据重复',
                'type': 'success',
                'sticky': False
            },
        }

参数解释: type: 'ir.actions.client': 定义通知的类型,表示这是一个客户端动作,会触发前端的一些操作。

tag: 'display_notification': 定义客户端动作的标签,告诉Odoo前端如何处理这个动作。在这里,它表示显示通知

params: 包含了通知的详细参数

  • title:设置通知的标题

  • message:设置通知的消息内容

  • sticky:设置通知是否“粘性”,如果设置为True,通知将一直显示在界面上,直到用户手动关闭,否则自动关闭

  • type:设置通知的类型,包括danger, warning , success, info

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子龙烜

坦克大战系列,手把手带你实现

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值