以下代码:
{% ifequal username AnonymousUser %}
<p>Welcome</p>
{% else %}
<p> Welcome {{ username }}. Thanks for logging in.</p>
{% endifequal %}
显示:
Welcome AnonymousUser. Thanks for logging in.
什么?我不仅有点恼火。我很确定我不需要提供额外的代码来帮助您理解我的问题。
我不认为这是一个等同的问题。我对此非常了解。
用户名来自:
username = request.user
这是否意味着代码中此时的用户名不是字符串。我是否必须将其转换为字符串。
答案 0 :(得分:3)
您需要与字符串进行比较。使用此:
{% ifequal smart_str(username).strip() "AnonymousUser" %}
这是Django documentation on checking equality with ifequal
。
确保您的变量是一个字符串,并且还要修剪前导和尾随空格。