【问题标题】:Odoo warning pop-up bugOdoo警告弹出错误
【发布时间】:2018-02-07 06:54:43
【问题描述】:

在 odoo10 中,我写了一个 @api.onchange 函数更改名称,如果名称已经在数据库中,则返回警告弹出窗口,所以当我在名称字段中输入后单击保存按钮然后它返回一个警告弹出窗口但也形成保存在我不想要的背景上。

那么,这里的实际问题是什么? 请在下面找到随附的屏幕截图。 谢谢

【问题讨论】:

  • 你能把你的onchange方法的代码贴在这里吗?
  • @api.onchange('displayname', 'firstname', 'lastname') @api.multi def check_duplicate_name(self): if self.name: contact = self.env['res.partner'].search([('name', '=', self.name)]) if contact: return { 'warning': { 'title': 'Warning Message', 'warning': 'Company/Contact name already exist.\nDo you want to continue?', } }
  • 您的问题是,Odoo 让您在显示警告后保存记录(尽管该名称已存在于数据库中),不是吗?
  • 我的问题是,在出现警告消息之前,表单应该处于可编辑状态。
  • 你的问题是什么?您有什么具体问题吗?

标签: python odoo-10


【解决方案1】:

如果问题是 Odoo 允许您在显示警告后保存记录(尽管该名称已存在于数据库中),您必须为您的模型添加 SQL 约束,因为 onchange 方法中的警告不防止用户存储记录。

_sql_constraints = [
    ('name_unique', 'unique(name)',
    'There is another record with the same name stored in the database!')
]

当然,您可以保留 onchange 警告,以便让用户知道,如果他们保留该名称,则他们在保存记录时会出错。

【讨论】:

  • 感谢您的回答,但它会引发验证错误,我只想要一个警告,我们可以通过单击确定按钮进一步继续。
猜你喜欢
  • 1970-01-01
  • 2015-08-07
  • 2018-06-17
  • 1970-01-01
  • 2021-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多