Django,根据用户组显示某些超链接

时间:2019-11-28 21:23:48

标签: html django templates

{% extends 'base.html' %}

{% block content %}
  <p>Welcome to home page.</p>
  <p>{% user.groups.all() %}</p>
{% endblock %}

此刻,我试图弄清楚如何使所有用户组都显示在页面上。这将导致错误。...第5行上的无效块标记:“ user.groups.all()”,预期为“ endblock”。您忘记注册或加载此标签了吗?

我已经尝试过执行if语句,但是只要它满足一个条件,它似乎就会中断。例如,如果用户是test1和test2组的一部分,我希望它显示test1和test2,但只显示test1。

{% 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 %}

1 个答案:

答案 0 :(得分:0)

在第一个代码中,您应该改为使用{{ }}。为了访问组,请执行以下操作:

 {{ user.groups.all }}

并检查特定的组:

{% if desired_group in user.groups.all %}
  some html..
{% endif %}

如果要为每个组输出特定的html:

{% for group in user.groups.all %}
   {% if group == desired_group %}
     some html..
  {% endif %}
   ..some more conditions..
{% endfor %}