Как аннулировать кэш страниц в django
Как я могу аннулировать кэш страницы в django. Я пытаюсь кэшировать страницу, отображающую список, уникальный для каждого пользователя, используя django-rest-framework. Я не могу понять, как сделать кэш страницы недействительным, когда другой объект добавляется, обновляется, удаляется из модели.
Я открыт для использования внешнего пакета или сигналов.
Я не знаю, какой ключ для @page_cache, чтобы аннулировать кэш
Я пытался использовать django-fancy-cache, но получаю ошибку
unsupported operand type(s) for +: 'float' and 'function'
мои настройки кэша
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
'LOCATION': 'unique-snowflake',
}
}
Вы можете перенести логику аннулирования в свои модели. Например, чтобы аннулировать кэш при добавлении/обновлении объекта, вы можете переопределить метод сохранения модели. Например:
def save(self, *args, **kwargs):
cache.delete(`YOUR_CACHE_KEY`)
super().save(*args, **kwargs)
то же самое для удаления:
def delete(self, *args, **kwargs):
cache.delete(`YOUR_CACHE_KEY`)
super().delete(*args, **kwargs)