Удаление определенных объектов от кэша Django?

Вы можете фильтровать массив ( array_filter ):

$output = array_filter($haystack, function ($v) use ($needle) {
    return in_array($v, $needle);
});

9
задан Peter Mortensen 7 October 2009 в 15:58
поделиться

2 ответа

решение tghw на самом деле не работает, потому что ключ кэширования - это НЕ абсолютный путь. Ключ вычисляется из абсолютного пути и заголовков HTTP. Смотрите этот вопрос для примера.

4
ответ дан 4 December 2019 в 21:51
поделиться

Я не сделал большого кэширования с Django, но я думаю, что Вы хотите, вот signals.

Можно настроить a post_save сигнал на основном объекте, и имеет функцию обратного вызова, делают недействительным ту страницу в кэше.

from django.core.signals import post_save
from django.core.cache import cache

def invalidate_cache(sender, **kwargs):
    # invalidate cache
    cache.delete(sender.get_absolute_url()) # or any other pertinent keys

post_save.connect(invalidate_cache, sender=UnderlyingModel)

Это должно правильно удалить объект из кэша, когда он обновляется.

5
ответ дан 4 December 2019 в 21:51
поделиться
Другие вопросы по тегам:

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