次のモデルが与えられた場合:(説明のためだけにある TextFields を気にしないでください)
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')
これらの定義によれば、Content オブジェクトは複数の Base オブジェクトに関連付けることができます。インタビュー(=Contentオブジェクト)は、ミュージシャン(=Child1オブジェクト)、映画監督(=Child2)などとリンクできます。
さて、私の質問ですが、 aso_items フィールドが指しているモデルに従ってコンテンツオブジェクトをフィルタリングすることは可能ですか? 例: Child1 の特定のオブジェクトに関連付けられたすべてのコンテンツ オブジェクト (たとえば、ミュージシャンのボブ ディランに関連付けられたすべてのインタビュー) を含むクエリセットが必要だとします。
さらに、Child1 オブジェクトに関連付けられたすべての Content オブジェクトを含む QuerySet が必要な場合はどうすればよいでしょうか? (たとえば、ミュージシャンに関連付けられたすべてのインタビュー) これにより、フィルタリングはどのように変化しますか?
前もって感謝します ps: プレビューで空白に問題が発生しています。ご容赦ください。