Как аннулировать кэш страниц в 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)
Вернуться на верх