Django模型确保两个属性应该总是不同的 - 唯一的答案是什么?

时间:2017-03-17 03:50:54

标签: django django-models

如何确保不应重复两个属性的唯一组合

例如在以下模型中

class modelBodyPart(models.Model):
    area = models.CharField(max_length=128)
    crush_name = models.CharField(max_length=128)

在每个modelBodyPart areacrush_name的实例中应始终不同

例如,一些允许和不允许的结果是:

  area = Area_A crush_name=Jenny //OK
  area = Area_A crush_name=Jordan //OK
  area = Area_B crush_name=Jenny //OK
  area = Area_A crush_name=Jenny //Not allowed

我如何在模型中实现这一点?我会使用unique_together 我无法完全理解上述链接中的案例要求,这就是我在这里要求的原因。

1 个答案:

答案 0 :(得分:1)

是的,你说得对,你的代码应该是这样的 -

<强> models.py

class modelBodyPart(models.Model):
    area = models.CharField(max_length=128)
    crush_name = models.CharField(max_length=128)

    class Meta:
         unique_together = ['area','crush_name']