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']]