2

複雑な関係を持つシステムに取り組んでおり、データをフィルタリングする効率的な方法を見つけようとしています。

次の関係があるとします。

model C- FK -> model B- FK ->model A

model C- FK -> model R- FK -> model T- FK ->model Z

それに関連付けられているすべての sをmodel Aどのように取得できますか?Z

1つのアプローチ(機能していると思いますが、あまり効率的ではありません)は次のとおりです。

class A(models.Model):
    @property
    def get_related_Zs(self):
        Cs = models.C.objects.filter(B__A=self)
        Zs = models.Z.objects.filter(R__T__Z__in=Cs).distinct()
        return Zs

おそらくこれが最良のアプローチです(私はそうは思いません)。これを行うためのより効率的な方法についてのアイデアはありますか?

4

1 に答える 1