Django queryset изначально остается пустым, но заполняется после создания объекта без повторного выполнения запроса. Как такое возможно? [дубликат]

Я столкнулся с недоуменной проблемой в своем Django-приложении. У меня есть набор запросов (qs), полученный из запроса к базе данных в начале вызова DRF api. Странно, но при осмотре этот queryset кажется пустым. Однако, продолжая выполнение кода, я создаю объект для той же модели без повторного запуска queryset, и, к моему удивлению, queryset внезапно заполняется вновь созданным объектом.

Вот упрощенная версия того, что я испытываю:

# Initial queryset
initial_qs = MyModel.objects.filter(some_condition=True)

# At this point, initial_qs appears empty when I print it or inspect its contents

# Creating an object without re-running the queryset
new_object = MyModel.objects.create(some_field='value')

# Now, if I print initial_qs or inspect its contents again, it contains the newly created object

# How is it possible that the queryset remains empty initially but populates later without re-running the query?

Есть ли что-то, что я упускаю из виду в механизме кэширования ORM в Django или в том, как работает оценка кверисетов?

Вернуться на верх