2015-06-05 1 views
4

Предположим, у меня есть:Как отменить объекты запроса для нескольких уровней в django?

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, как можно получить все объекты LEVEL4 из Level1?

Как и значение: level1.level2_set.level3_set.level4_set.

ответ

3

Вы можете начать с модели, объекты которой вы хотите получить, LEVEL4, затем следуют отношения с синтаксисом двойного подчеркивания.

Level4.objects.filter(level3__level2__level1=my_level1_object) 
0

Основываясь на docs, я хотел бы использовать:

Level4.objects.filter(name="...", level3__name="...", level3__level2__name="...", level3__level2__level1__name="...") 
Смежные вопросы