独特的价值,但如何防止拼写错误 - Odoo

Unique values but how to prevent with spelling mistakes - Odoo

我可以使用下面提到的 _sql_constraints 来防止重复但是当用户输入时:

面包店

面包店

烘焙食品

等...

如何防止用户不输入此类值?

> _sql_constraints = [
> 
>     ('categoryname_unique',
> 
>      'unique(name)',
> 
>      'each category should be unique'),
> 
> ]

我认为 _sql_constraints 不区分大小写,因此 Bakery 应被视为与 相同bakery,所以如果是同一个属性不同case,则无法创建记录。对吗?

或者,您可以将其更改为 selection 字段。让我们的经理创建该值,而不是让用户输入值,然后用户将从列表中 select 它。

至少我可以避免重复相同的拼写,但在任何一种情况下(不区分大小写)使用下面的代码(感谢 odoo 论坛 - @Neha Sharma-Kanak)

@api.constrains('name')
def _check_unique_brand(self):
    brand_ids = self.search([]) - self

    value = [x.name.lower() for x in brand_ids]

    if self.name and self.name.lower() in value:
        raise ValidationError(_('The Brand Name is already Exist'))

    return True