Я не слишком много кешировал с Джанго, но я думаю, что вы хотите здесь signals
.
Вы можете установить сигнал 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)
Это должно правильно удалить элемент из кэша при его обновлении.