假设我在django(未测试)中定义了以下模型:
class CarMaker(models.Model):
name = models.CharField("Name of car maker",
max_length=40)
class Car(models.Model):
car_id = models.IntegerField("ID for this particular car")
maker = models.ForeignKey("Maker of this car")
是否有标准的django方法可确保具有相同Car
的所有maker
具有唯一car_id
,而不会使所有<{1}}唯一/ em> car_id
s?
E.g。有两家汽车制造商,“斯柯达”和“雷诺”。斯柯达制造400 Car
,雷诺制造300 Car
。我想确保car_id对于所有Skodas都是唯一的,并且对所有雷诺都是唯一的,但不一定对所有Car
都是唯一的。
由于
答案 0 :(得分:12)
您可以使用模型选项unique_together
来创建此类约束。请参阅Django文档:http://docs.djangoproject.com/en/1.2/ref/models/options/#unique-together
class Car(models.Model):
car_id = models.IntegerField("ID for this particular car")
maker = models.ForeignKey("Maker of this car")
class Meta(object):
unique_together = ("car_id", "maker")