私のモデルの1つについて、次の概念設計を念頭に置いています。
class A(models.Model):
...
class B(A): #Inherits A
fieldA = ...
fieldB = ...
class C(A): #Inherits A
fieldC = ...
fieldD = ...
class D(models.Model):
field = models.ForeignKey(A) #Here lies the problem, should store B or C
上記のモデルを前提として、DのBまたはCのいずれかに外部キーを格納したいのですが、両方には格納しません。
AのMetaクラスプロパティをabstractに設定しようとしましたが、AとのForeignKey関係が許可されていません。BまたはCではないAのインスタンスは必要ありませんが、必要に応じて、これを制限できます。保存信号での動作。
すべてのクラスが共通ベースから継承するタイプのリストから外部キーを格納できるようにする、より簡単な設計はありますか?