2 つの外部キー フィールドで null を許可したいと思います。
ただし、2 つのフィールドを同時に null にすることはできません。
実際には、常に 1 つだけを設定する必要があります。
これをどのように表現すればよいでしょうか。
外部キーが参照する 2 つのテーブルが同じではありません。
2 つの外部キー フィールドで null を許可したいと思います。
ただし、2 つのフィールドを同時に null にすることはできません。
実際には、常に 1 つだけを設定する必要があります。
これをどのように表現すればよいでしょうか。
外部キーが参照する 2 つのテーブルが同じではありません。
モデルフィールドに何かを追加しても、これを達成することはできません。このロジックを に配置する必要がありますsave()
。
class MyModel(models.Model):
fk1 = models.ForeignKey(Some, null=True)
fk2 = models.ForeignKey(Other, null=True)
def save(self, *args, **kwargs):
if not fk1 and not fk2:
raise Exception("You can't leave both fields as null")
super(self, MyModel).save(*args, **kwargs)