J'essaie de concevoir un cadre pour aider à mettre en œuvre des flux web complexes. Le cadre fournirait des classes abstraites qui pourraient être héritées et implémentées par les sous-applications. Maintenant, comme vous pouvez le voir, ma classe abstraite Action a une clé étrangère avec Stage. Puisqu'elle a une clé étrangère, elle ne peut pas être rendue abstraite, car elle aurait sa propre table. Donc, si j'ai 2 applications en cours d'implémentation, la première application peut voir toutes les étapes pour elle-même ainsi que pour l'autre application. Je pourrais faire quelques ajustements dans les requêtes pour éviter cela. Mais je veux savoir s'il existe une solution pour que ma classe d'action puisse pointer directement vers la classe de stage héritée.
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):
...
Mise à jour :
La situation actuelle est la suivante :
ActionImpl1 a une clé étrangère à Stage
Ce que j'aimerais avoir, c'est :
ActionImpl1 pour avoir une clé étrangère avec StageImpl1