繁体   English   中英

如何使 django 中的页面缓存无效

[英]how can i invalidate page cache in django

如何使 django 中的页面缓存无效。 我正在尝试缓存一个页面,该页面显示一个列表,该列表对于使用 django-rest-framework 的每个用户都是唯一的。 当从 model 添加、更新、删除另一个 object 时,我无法弄清楚如何使页面缓存无效。

我愿意使用外部 package 或信号。

我不知道@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',
     }
}

您可以将失效逻辑移动到模型中。 例如,为了在添加/更新 object 时使缓存无效,您可以覆盖模型的保存方法。 例如:

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM