如何在django中反转多个级别的查询对象?

时间:2015-06-05 06:24:00

标签: python django django-models

假设我有:

Class Level1:
    name = CharField()

Class Level2:
    name = CharField()
    level1 = ForeignKey(Level1)

Class Level3:
    name = CharField()
    level2 = ForeignKey(Level2)

Class Level4:
    name = CharField()
    level3 = ForeignKey(Level3)

假设我已经有一个Level1对象:level1,如何获取Level1的所有Level4对象?

喜欢含义:level1.level2_set.level3_set.level4_set。

2 个答案:

答案 0 :(得分:4)

从您想要获得其对象的模型开始,Level4,然后遵循双下划线语法的关系。

Level4.objects.filter(level3__level2__level1=my_level1_object)

答案 1 :(得分:0)

根据docs,我会使用:

Level4.objects.filter(name="...", level3__name="...", level3__level2__name="...", level3__level2__level1__name="...")