gpt4 book ai didi

django - 如何在收到信号时使 django 模板缓存 key 过期?

转载 作者:行者123 更新时间:2023-12-04 13:07:41 25 4
gpt4 key购买 nike

在我的首页模板中,我使用这样的缓存功能:

{% cache 86400 my_posts %}
{% get_latest_posts %}
{% endcache %}

当有新帖子时,我想使缓存 key 过期;像这样:
def clear_post_cache():
cache.delete('my_posts')

post_save.connect(clear_post_cache, sender=Post)

我的问题是缓存键不能作为“my_posts”访问。我如何找到 key 名称?

最佳答案

看看缓存键是如何constructed :

args = md5_constructor(u':'.join([urlquote(resolve_variable(var, context)) for var in self.vary_on]))
cache_key = 'template.cache.%s.%s' % (self.fragment_name, args.hexdigest())

键是片段名称( my_posts )和缓存标记的附加参数的 md5 总和的组合。由于您没有其他参数,因此十六进制摘要为 d41d8cd98f00b204e9800998ecf8427e (空字符串的 md5 哈希值)。因此,缓存键最终应该是
template.cache.my_posts.d41d8cd98f00b204e9800998ecf8427e

如果您需要更通用的解决方案, this snippet可能有帮助。

关于django - 如何在收到信号时使 django 模板缓存 key 过期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1782396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com