Django使用2个模型字段检查重复项
我有一个这样的模型:Django使用2个模型字段检查重复项,django,python-3.x,sorting,django-models,django-2.2,Django,Python 3.x,Sorting,Django Models,Django 2.2,我有一个这样的模型: class UssdCode(models.Model): title = models.CharField(max_length=100) code = models.CharField(max_length=100) product = models.CharField(max_length=100) 当我尝试添加与数据库中已有对象具有相同“代码”和“产品”的新对象时,如何让管理员提醒我并拒绝我的输入。您将其设置为唯一的。因为,您可以使用的用于
class UssdCode(models.Model):
title = models.CharField(max_length=100)
code = models.CharField(max_length=100)
product = models.CharField(max_length=100)
当我尝试添加与数据库中已有对象具有相同“代码”和“产品”的新对象时,如何让管理员提醒我并拒绝我的输入。您将其设置为唯一的。因为,您可以使用的用于:
# since Django-2.2
class UssdCode(models.Model):
title = models.CharField(max_length=100)
code = models.CharField(max_length=100)
product = models.CharField(max_length=100)
class Meta:
constraints = [
models.UniqueConstraint(fields=['code', 'product'], name='code_product')
]
谢谢你,这很有效。如果使用包导入模型,您是否知道如何实现此“unique_-together”?@ebere:通常这也在数据库级别强制执行,因此数据库通常会拒绝这些字段组合中的重复项。
# before Django-2.2 (still works on Django-3.0)
class UssdCode(models.Model):
title = models.CharField(max_length=100)
code = models.CharField(max_length=100)
product = models.CharField(max_length=100)
class Meta:
unique_together = [['code', 'product']]