Étant donné les modèles suivants: (ne me dérange pas les TextFields il sont juste pour illustration)Django héritage modèle, les modèles de filtrage
class Base(models.Model):
field1 = models.TextField()
class Meta:
abstract=True
class Child1(Base):
child1_field = models.TextField()
class Child2(Base):
child2_field = models.TextField()
class Content(models.Model):
aso_items = models.ManyToManyField('Base')
Selon ces définitions un objet contenu peut être associé à plus d'une base objet, par exemple. une interview (= Objet de contenu) peut être liée à un musicien (= objet Child1), un filmdirector (= Child2), etc.
Maintenant, pour ma question: Est-il possible de filtrer les objets Contenu selon quel modèle? le champ aso_items pointe vers? Un exemple: Supposons que je souhaite un Queryset contenant tous les objets Content associés à un objet spécifique de Child1 (par exemple toutes les interviews associées au musicien Bob Dylan), comment puis-je y parvenir? En outre, que se passe-t-il si je veux un QuerySet contenant tous les objets Content associés aux objets Child1 (par exemple toutes les interviews associées aux musiciens) Comment cela change-t-il le filtrage?
Merci à l'avance ps: je rencontre quelques problèmes avec l'espace blanc dans l'aperçu, pardonnez-moi
C'est une bonne solution si le modèle de contenu n'est pas abstrait aussi. Si le modèle de contenu était aussi un modèle abstrait, alors il ne fonctionnerait plus (mais c'est un problème différent de ce que j'ai posté) – logion
Assez juste. Dans le cas où les deux sont abstraits, je pense que vous devrez utiliser le framework ContentType comme suggéré par Adam. –