Django: перебирать набор запросов без кеша - PullRequest
5 голосов
/ 18 сентября 2009

У меня тупая простая петля

for alias in models.Alias.objects.all() :
    alias.update_points()

, но, глядя на django QuerySet, он, похоже, сохраняет _result_cache всех предыдущих результатов. Это пожирает концерты моей машины, и в конце концов все взрывается.

Как я могу выбросить все вещи, которые меня не волнуют?

Ответы [ 2 ]

11 голосов
/ 18 сентября 2009

Используйте метод набора запросов iterator() для возврата моделей в виде фрагментов без заполнения кеша результатов:

for alias in models.Alias.objects.iterator() :
    alias.update_points()
0 голосов
/ 18 сентября 2009

Вам следует рассмотреть возможность сохранения изменений в базе данных.

for alias in models.Alias.objects.all() :
    alias.update_points()
    alias.save()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...