use*_*411 21 python django templates django-templates django-views
我怎样才能在Django模板中干净利落地做到这一点?基本上如果A,或(B和C),我想显示一些HTML.
我基本上有这个:
{%if user.is_admin或something.enable_thing and user.can_do_the_thing%}
现在,那有点暧昧.我试过了
{%if user.is_admin或(something.enable_thing and user.can_do_thething)%}
但是你不允许括号.文档说使用嵌套ifs(或者在这种情况下是elifs,我猜,因为它是一个OR),但是我不想在块内重复相同的HTML,这听起来很糟糕.
Sve*_*ven 15
正如Mihai Zamfir评论的那样它应该按预期工作.正如Django文档所述:
两者的用途和和或同一标签内的条款将被允许,并且有较高的比优先级或例如:
{%if athlete_list和coach_list或cheerleader_list%}
将被解释为:
if(athlete_list和coach_list)或cheerleader_list
您可以在视图中进行检查并将标志传递给上下文.
show_html = user.is_admin or (something.enable_thing and user.can_do_the_thing)
context['show_html'] = show_html
Run Code Online (Sandbox Code Playgroud)
然后在您的模板中,您可以检查标志
{% if show_html %}
| 归档时间: |
|
| 查看次数: |
8098 次 |
| 最近记录: |