gpt4 book ai didi

python - 在 Django 中有条件地扩展模板

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

我在 Django 网站上有一个下载页面,我想为登录和未登录的用户提供该页面。我不想拥有 user_download.html 和 login_download.html,而是想要有条件地扩展正确基础的单个 download.html。

但是,当我使用以下代码时出现错误。

{% if user.is_authenticated %}
{% extends 'user_base.html' %}
{% else %}
{% extends 'login_base.html' %}
{% endif %}

{% block content %}
<h2>Downloadable content</h2>
...
{% endblock %}

我收到的错误是/download/处的 TemplateSyntaxError

无效的 block 标记:'else'

else有什么问题?我试过了

{% if user.is_authenticated %}
{% extends 'user_base.html' %}
{% else %}{% if AnonymousUser.is_authenticated %}
{% extends 'login_base.html' %}
{% endif %}{% endif %}

{% block content %}
<h2>Downloadable content</h2>
...
{% endblock %}

但这也不起作用。

谢谢,埃里普

最佳答案

{% extends %} 标签支持变量。参见 the doc供引用。

def my_view(request):
if request.user.is_authenicated
base_template_name = 'user_base.html'
else:
base_template_name = 'login_base.html'

# Pass base template name to the renderer
return render_to_response('your_template.html', {'base_template_name':base_template_name})

模板(请注意该值未被引用):

{% extends base_template_name %}
...

关于python - 在 Django 中有条件地扩展模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27748283/

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