如何解决模板中的Django条件详细信息
在我的Django应用程序中,有些用户使用department codes
,我想向这些用户显示有关模板的不同详细信息,但是超级用户应该可以看到所有内容。这是我的代码:
template.html
:
{% if user.is_superuser or user.department_code=1%}
<p>Your department code is 1 or you are a superuser</p>
{% elif user.is_superuser or user.department_code=2%}
<p>Your department code is 2 or you are a superuser</p>
{% else %}
<p> You are a superuser</p>
{% endif %}
在这种情况下,我作为超级用户只能看到第一段。我该怎么做呢?
解决方法
您的问题是由您使用{% elif %}
引起的。
如果您是超级用户,则将检查第一个条件,该条件的结果为True
,然后不再检查您随后的{% elif %}
和{% else %}
。仅当第一个条件为{% elif %}
时,才考虑第二个False
,这就是为什么如果您不是超级用户,它会起作用的原因。为了使{% else %}
触发,前两个条件必须均为False
。例如,如果您以非超级用户身份登录并且部门代码为3,则可能会发生这种情况。
只需将您的{% elif %}
替换为{% if %}
,它就会起作用。
{% if user.is_superuser or user.department_code == 1 %}
<p>Your department code is 1 or you are a superuser</p>
{% endif %}
{% if user.is_superuser or user.department_code == 2 %}
<p>Your department code is 2 or you are a superuser</p>
{% endif %}
{% if user.is_superuser %}
<p> You are a superuser</p>
{% endif %}
在相等性检查中您还缺少了“ =”,请注意我在每种情况下如何使用两个而不是一个。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。