如何在Django中反向查询多个级别的对象?

dsp*_*pjm 5 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)
Run Code Online (Sandbox Code Playgroud)

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

含义如下:level1.level2_set.level3_set.level4_set。

Dan*_*man 6

首先从要获取其对象的模型Level4开始,然后使用双下划线语法遵循关系。

Level4.objects.filter(level3__level2__level1=my_level1_object)
Run Code Online (Sandbox Code Playgroud)