{% if request.session["user_name"] %}
<div class="abcd">user has username</div>
{% else %}
<div class="abcd">user doesn't has username</div>
{% endif %}
这是非法的吗?有错误:
TemplateSyntaxError at /users/register/submit
Could not parse the remainder: '['user_name']' from 'request.session['user_name']'
答案 0 :(得分:10)
Django doc说:
Django模板系统不仅仅是嵌入到HTML中的Python
这意味着你不能写Python。
然而,在讨论变量时,doc也说明了这一点:
幕后花絮
从技术上讲,当模板系统遇到一个点时,它会按以下顺序尝试以下查找:
- 字典查找
- 属性查找
- 方法调用
- 列表索引查找
这意味着您正在尝试的是可能的,但正确的语法是:
{% if request.session.user_name %}
答案 1 :(得分:1)
请注意,您需要以下列方式传递要评估的变量。
您的python脚本
template_values = {
'message': 'Invalid credentials, please try again'
'users': users
}
path = os.path.join(os.path.dirname(__file__), 'login.html')
self.response.out.write(template.render(path, template_values))
模板文件
{% ifequal users.name "name" %}
<div class="abcd">user has username</div>
{% endifequal %}
请根据您使用的版本检查django template docs以获得进一步说明。