В соответствии с docs набор запросов оценивается при вызове на него списка()., добавляя запрос к списку/кортежу без его оценки
Есть ли способ добавить список/кортеж с набором запросов вместо объектов модели? Вызывается ли список() для каждой операции в списках/кортежах?
например:
foo= Foo.objects.all()
bar = Bar.objects.filter(enabled=True)
my_list = []
my_list.append(foo) <-- evaluates
my_list.extend(foo) <-- evaluates
my_tuple =()
my_tuple = my_tuple + (foo,) <-- evaluates
# so I'm getting
[<Foo: ModelDescription>,<Foo: ModelDescription>,<Bar: ModelDescription>]
#but I want
[<Queryset: Foo>, <Queryset:Bar>]
Вы уверены, что первый и третий оцениваете запрос? Они не должны. –
Я думаю, что они только оценивают в оболочке активного интерпретатора. – Jingo
Да, они сделали. Помещение кода в функцию просмотра решило проблему :) – Jannis