实际上,我是Django的新手,所以我不明白为什么if-else语句在这里不起作用。这个代码有什么超级错误吗?
{%extends 'main/base.html'%}
{%block title%}
{{ title }}
{%endblock%}
{%block content%}
<div class="container-fluid">
<h2>{{user.first_name}}</h2>
<p>{{user.second_name}}</p>
<div class="col">
{%for recel in receipts%}
{%if recel.author is user.username%}
<h2>Receipt: {{recel.title}}</h2>
<h4>Doctor: {{recel.author}}</h4>
{%else%}
<span></span>
{%endif%}
{%endfor%}
</div>
</div>
{%endblock%}
如果您使用django的身份验证。
替换:
{% if recel.author is request.user %}
带有:
{%if recel.author is user.username%}
is
检查对象是否为同一对象。您想要检查相等性(如果对象具有相同的值(,这是使用==
完成的。
{%if recel.author == user.username%}
{%if recel.author is user.username%}
<h2>Receipt: {{recel.title}}</h2>
<h4>Doctor: {{recel.author}}</h4>
{%else%}
<span></span>
{%endif%}
{%endfor%}
Django的模板语言(DTL(在许多方面与python相似,这个答案更深入地解释了is
和==
之间的差异。