gpt4 book ai didi

python - 如何不在 django 中只缓存模板的一段代码

转载 作者:太空宇宙 更新时间:2023-11-03 18:37:52 24 4
gpt4 key购买 nike

在 django v.1.4 下。

问题:

由于我的模板是由这个 View 渲染的,它将完全存储在缓存中:

@cache_page(60*60*24)
def index(request):
foo_form = FooForm()
context = RequestContext(request, {
'foo_form': foo_form
})
# An entire page is rendered
return render_to_response('index.html', context_instance=context)

在我的模板中,我有一个 if 语句,用于检查用户是否经过身份验证:

...
<li>
{% if user.is_authenticated %}
<a href="{% url 'home' %}" class="login">Enter</a>
{% else %}
<a href="" class="login" data-target="#login_modal" data-tggle="modal">Enter</a>
{% endif %}

</li>
...

有一个由“Enter”按钮激活的模式,当没有用户登录时应该显示该模式,否则当单击“Enter”按钮时用户将被重定向到系统。

问题:有没有办法只忽略模板中不被缓存的那段代码?如果是这样,怎么办?

最佳答案

您应该使用模板片段缓存: https://docs.djangoproject.com/en/1.6/topics/cache/#template-fragment-caching

{% load cache %}
{% cache 500 sidebar request.user.username %}
.. sidebar for logged in user ..
{% endcache %}

关于python - 如何不在 django 中只缓存模板的一段代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21196377/

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