Django:有没有办法将外键字段添加到" unique_together"?

时间:2016-06-28 16:14:03

标签: python django database

我希望能够在来自外键模型的值上创建唯一的模型。不确定这是否可能在django。

示例:我的模型A为:

class modelA(models.Model):
    fieldA1 = models.AutoField(primary_key=True)
    fieldA2 = models.CharField(max_length=20)

并将模型B视为:

class modelB(models.Model):
    fieldB1 = models.CharField(max_length=20)
    fieldB2 = models.ForeignKey(modelA)

    class Meta:
        unique_together = ('fieldB1', 'fieldB2',<<'fieldA2'>>)

我想将fieldA2添加为模型B的unique_together子句中的一个属性。这在Django中是否可行?我可能这样做 -

unique_together = ('fieldB1', 'fieldB2','modelA__fieldA2')

2 个答案:

答案 0 :(得分:1)

你不能。数据库约束不能包含那些类型的数据。您必须在创建实例或编写一些验证器之前以编程方式检查它

答案 1 :(得分:0)

您可以像这样覆盖modelB的{​​{1}}方法

clean