我可以使用下面提到的_sql_constraints来防止重复,但是当用户输入如下:
面包店
面包店
bakry
等等……
如何防止用户不输入这种类型的值?
> _sql_constraints = [
>
> ('categoryname_unique',
>
> 'unique(name)',
>
> 'each category should be unique'),
>
> ]
我相信_sql_constraints不区分大小写,所以Bakery应该与bakery相同因此,如果它是不同情况下的相同属性,则无法创建记录。对吧?
可选,您可以将其更改为selection
字段。而不是用户输入值,让我们的经理创建该值,用户将从列表中选择它。
至少我可以避免重复使用相同的拼写,但在任何情况下(不区分大小写)使用下面的代码(感谢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