私は似ているが完全に同じではない2つのモデルを持っています。これが私が思いつくことができる問題の最良の抽象化です。
class Cat(models.Model):
name = models.TextField()
breed = models.TextField()
class Dog(models.Model):
name = models.TextField()
color = models.TextField()
そして今、私はこのような別のモデルを作る必要があります。
class Pet(models.Model):
favoriteFood = models.TextField()
isCat = models.BooleanField()
animal = models.ForeignKey(?????????)
私の問題は、ペットモデルの動物フィールドが、isCatの値に応じて、猫モデルまたは犬モデルのいずれかの外部キーになることです。どうやってやるの?
そもそもこれが珍しい/厄介なスキーマであることはわかっていますが、私はその作成に関与しておらず、変更することはできません。私はそれをサポートする必要があります。私は既存のデータベース用にこれらのモデルを書いています。