Django,根据用户组显示某些超链接 {%extends'base.html%} {%block content%}
欢迎来到主页 {%user.groups.all()%} {%endblock%} 目前,我正试图弄清楚如何让所有用户的组显示在页面上。这将导致一个错误。。。。第5行的块标记无效:“user.groups.all()”,应为“endblock”。您是否忘记注册或加载此标签 我尝试过使用if语句,但它似乎在满足一个条件时就中断了。例如,如果用户是test1和test2组的一部分,我希望它显示test1和test2,但它只显示test1Django,根据用户组显示某些超链接 {%extends'base.html%} {%block content%},html,django,templates,Html,Django,Templates,欢迎来到主页 {%user.groups.all()%} {%endblock%} 目前,我正试图弄清楚如何让所有用户的组显示在页面上。这将导致一个错误。。。。第5行的块标记无效:“user.groups.all()”,应为“endblock”。您是否忘记注册或加载此标签 我尝试过使用if语句,但它似乎在满足一个条件时就中断了。例如,如果用户是test1和test2组的一部分,我希望它显示test1和test2,但它只显示test1 {% extends 'base.html' %} {%
{% extends 'base.html' %}
{% block content %}
<p>Welcome to home page.</p>
<p>{% user.groups.all() %}</p>
{% endblock %}
{%extends'base.html%}
{%block content%}
欢迎来到主页
{%if user.groups.all.0.name==“test1”%}
测试1
{%if user.groups.all.0.name==“test2”%}
测试2
{%endif%}
{%endblock%}
在第一个代码中,您应该使用{{}
。要访问组,请执行以下操作:
{% extends 'base.html' %}
{% block content %}
<p>Welcome to home page.</p>
{% if user.groups.all.0.name == "test1" %}
<p>test1</p>
{% if user.groups.all.0.name == "test2" %}
<p>test2</p>
{% endif %}
{% endblock %}
以及检查特定组:
{{ user.groups.all }}
如果要为每个组输出特定的html:
{% if desired_group in user.groups.all %}
some html..
{% endif %}
我对第二和第三街区的工作方式有点困惑。。我想我是在反着头胡思乱想。。因此,如果用户有“这些组”,则显示这些组。但我相信第二和第三街区在做别的事情?或者它的意图是这样的..我不太明白你的目标是什么,但是如果你想直接输出组,你可以在for循环中使用{{group}}。哦,我想我现在明白了。出于某种原因,我认为user.groups.all会获取表中的所有组,但它会获取与该用户相关的所有组。谢谢,如果你想获得所有可用的组,你可以使用上下文处理器或在视图中传递组作为上下文。你知道为什么我的例子中第三个块不起作用吗?不输出任何html代码,也没有错误。。
{% for group in user.groups.all %}
{% if group == desired_group %}
some html..
{% endif %}
..some more conditions..
{% endfor %}