繁体   English   中英

Django:强制一个字段对于具有相同外键的所有模型对象是唯一的

[英]Django: Force a field to be unique for all model objects with the same foreign key

假设我在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方式来确保所有拥有相同maker Car都拥有独特的car_id ,而不会使car_id所有 Car 独一无二?

例如,有两家汽车制造商,“斯柯达”和“雷诺”。 有400 Car S按斯柯达制造和300 Car S按雷诺制造。 我想确保car_id对于所有Skodas都是独一无二的,并且对于所有雷诺来说都是独一无二的,但并不一定是所有Car的独特之处。

谢谢

您可以使用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")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM