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

相关推荐

  1. C# 构建可定时关闭的异步提示

    2024-07-12 03:42:03       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 03:42:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 03:42:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 03:42:03       58 阅读
  4. Python语言-面向对象

    2024-07-12 03:42:03       69 阅读

热门阅读

  1. python为什么慢?(自用)

    2024-07-12 03:42:03       21 阅读
  2. F1-score

    2024-07-12 03:42:03       18 阅读
  3. linux:vi命令

    2024-07-12 03:42:03       17 阅读