gpt4 book ai didi

python - 模板片段缓存似乎不适用于某些自定义模板标签

转载 作者:行者123 更新时间:2023-11-28 16:54:50 24 4
gpt4 key购买 nike

我一直在我的 Django 应用程序中实现缓存,并通过缓存 API 和模板片段缓存使用每个 View 缓存。在我的一些页面上,我使用了一个自定义的 django 模板标签,这个标签是通过第三方开发人员提供的,它在其模板标签中接受一些参数,然后向远程服务器发出请求,通过 XML 获取响应,并且然后在我的页面中呈现结果。太好了 - 我认为我可以使用片段缓存轻松缓存它,所以我:

{% load cache %}
{% cache 500 request.user.username %}
{% load third party custom tags %}
{% expensive custom tag set that gets stuff from a third party server via xml %}
{{ some.stuff}}
{% endcache %}

问题是无论我做什么,请求仍然会被发送到远程服务器,似乎 Django 不喜欢缓存这些自定义模板标签。我知道 memcached 运行良好,对于其他 View 和模板,一切正常。我在做与片段缓存不兼容的事情吗?有办法解决吗?

最佳答案

如果您尝试缓存的模板片段无法被 pickle,memcached 将无法存储它并引发异常。据我所知,渲染 Django 模板时生成的异常被抑制了。由于您的自定义标记正在执行 HTTP 请求,套接字对象(不能被腌制)可能以某种方式存储到模板片段中。

如果是这种情况,我能想到的唯一解决方法是修改自定义标记以删除任何剩余的套接字对象。

关于python - 模板片段缓存似乎不适用于某些自定义模板标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1627131/

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