Django: Выполните итерации по набору запроса без кэша

Самое легкое обходное решение (пока патч resetcycle не согласован и применялся), должен использовать встроенный фильтр "divisibleby" с forloop.counter:

{% for entry in blog.entries %}
  <div class="{% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}" id="{{ entry.id }}">
    {{ entry.text }}
  </div>
{% endfor %}

Немного более подробный, но не трудно понять и это работает отлично.

5
задан Dominic Rodger 18 September 2009 в 10:50
поделиться

2 ответа

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

for alias in models.Alias.objects.iterator() :
    alias.update_points()
11
ответ дан 13 December 2019 в 19:30
поделиться

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

for alias in models.Alias.objects.all() :
    alias.update_points()
    alias.save()
0
ответ дан 13 December 2019 в 19:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: