我正在研究一个具有一些复杂关系的系统,并且我正在尝试找到一种有效的方法来过滤一些数据。
假设我有以下关系:
model C
- FK -> model B
- FK ->model A
model C
- FK -> model R
- FK -> model T
- FK ->model Z
给定一个实例,model A
我怎样才能获得Z
与之关联的所有 s ?
一种方法(我认为有效 - 但效率不高)如下:
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
也许这是最好的方法(我对此表示怀疑)。关于更有效的方法的任何想法?