是否有一种方法可以使模型字段与引用相同外键的其他模型唯一?
在我的情况下,我试图使具有相同names
的{{1}}模型中的Attribute
是唯一的。例如:如果存在一个Obj
和CharAttribute
的{{1}},那么就不可能有另一个name='Types'
和obj=1
的{{1}}或{{ 1}}和CharAttribute
和name='Types'
obj=1
我目前对解决方案的想法是这样的:
IntAttribute
但是为每个可能创建的name='Types'
创建另一个for循环感觉很重复,并且必须有一种更好的方法来完成此任务。
提前感谢您的反馈。
答案 0 :(得分:0)
您可以使用unique_together来确保模型中没有重复的字段组合:
asynonymous
在模型之间,您必须进行手动验证:
class CharAttribute (models.Model):
name = models.CharField(max_length=40)
obj = models.ForeignKey(Obj, on_delete=models.CASCADE)
class Meta:
unique_together = ('name', 'obj')
相同的方法适用于其他模型。