odoo处理重复数据及弹窗提示

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


超级管理员 2024年7月9日
分析这篇文章
存档
登录 留下评论
安装odoo安装版后,使用odoo16源码无法连接PostgreSql的解决方案