Django: как гибко кэшировать динамические страницы?

Я пытался настроить кеш для моего приложения Django, но похоже, что основа кэширования Django основана на TIMEOUT: установите кеш, и он останется действительным для TIMEOUT количество секунд.

Это кажется довольно бесполезным для большинства ситуаций. На большинстве веб-страниц есть пользовательский контент, такой как комментарии или голоса или сообщения на форуме. Механизм тайм-аута не будет работать там. Необходим какой-то способ аннулирования кэшей: когда пользователь отправляет комментарий или голосование, кэш для этой страницы должен быть аннулирован.

Есть ли способ сделать это в Django? Если нет, то как вы кешируете страницы, сгенерированные вашим приложением Django?

Благодарю.

1 ответ

Решение

В django есть способ удалить кэшированные элементы вручную. Искать в документации для cache.delete а также cache.delete_many, В ваших представлениях django вы можете программно решить, когда аннулировать (или удалить) кэшированный элемент, основываясь на любых правилах, которые вы хотите. Чтобы избежать проблемы TIME_OUT, просто дайте достаточно долгое время, чтобы не быть достигнутым.

Есть также несколько подобных вопросов в SO, которые могут помочь вам... увидеть этот...

Удалить определенные предметы из кеша Django?

Другие вопросы по тегам