複雑なWebフローの実装に役立つフレームワークを設計しようとしています。フレームワークは、サブアプリによって継承および実装できる抽象クラスを提供します。ご覧のとおり、私の抽象クラスActionにはStageを持つ外部キーがあります。それは外部キーを持っているので、それはそれ自身のテーブルを持っているので抽象化することができませんでした。したがって、2つの実装アプリケーションがある場合、最初のアプリケーションは、他のアプリケーションだけでなく、それ自体のすべてのステージを表示できます。これを回避するために、クエリを微調整することができます。しかし、私の実装するActionクラスがInheriting Stageクラスを直接指すことができるように、解決策があるかどうかを知りたいです。
parent_app/models.py
class Stage(models.Model):
name = models.CharField(max_length=255)
class Action(models.Model):
stage = models.ForeignKey(Stage)
class Meta:
abstract = True
sub_app1 / models.py
class StageImpl1(Stage):
pass
class ActionImpl1(Action):
...
sub_app2 / models.py
class StageImpl2(Stage):
pass
class ActionImpl2(Action):
...
アップデート:
現在の状況は次のとおりです。
ActionImpl1にはStageへの外部キーがあります
私が持っているものは次のとおりです。
StageImpl1で外部キーを持つActionImpl1