3

私は似ているが完全に同じではない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の値に応じて、猫モデルまたは犬モデルのいずれかの外部キーになることです。どうやってやるの?

そもそもこれが珍しい/厄介なスキーマであることはわかっていますが、私はその作成に関与しておらず、変更することはできません。私はそれをサポートする必要があります。私は既存のデータベース用にこれらのモデルを書いています。

4

3 に答える 3

3

一般的な関係が表示されます。

于 2012-06-20T15:24:00.120 に答える
2

一般的な関係は直接の答えです。

于 2012-06-20T15:24:04.653 に答える
0

このユースケースの別のオプションは次のとおりです。django-polymorphic :)

于 2020-01-04T20:55:14.363 に答える