В тесте Джанго есть пустое QuerySet, присвоенные переменные, но не пусто при печати в консоли во время отладки

Обновить

April 2019

Просмотры

174 раз

1

Я отладка Django (1.11.8) теста и наблюдая странное поведение, при остановке в отладчике и переключился на Ipythonконсоль печатать:

Model.objects.all()

возвращает непустой Queryset. Однако, когда одни и те же выражения присваивается переменной , например:

obj_qs = Model.objects.all()

то obj_qsпусто QuerySet. Я хотел бы ожидать того же результата с обоих утверждений. Я пропускаю что - то важное в настройках тестов? Я использую как setUpTestData()и setUp()методы для инициализации объектов для теста.

1 ответы

0

The short explanation of this effect is that Querysets are lazy. I was checking Queryset before it was evaluated in the code that is why during debugging empty queryset was observed - making few steps forward to the lines where Queryset was actually used, proved that everything is OK.

Связанные вопросы