如何使导航栏上的某个项目可见某一组用户?

时间:2017-06-20 13:17:49

标签: django django-forms django-templates

请问有人请告诉我如何在导航栏上显示特定项目的某些用户? 例如,我需要一个项目' Faculty'只为某个组可见,条形应如下所示:

                                                 Home | Faculty | Student | Admin 

和所有其他人应该是:

                                                           Home | Student | Admin 

我想把它放在一行中,与此类似:

 {% if user.groups.filter(name='Faculty group').exists() %}
      <li>Faculty</li>
 {% endif %}

但是这个实现中存在错误。 非常感谢您的建议!

2 个答案:

答案 0 :(得分:1)

最好的方法是在用户模型中建立一个属性:

@property
def is_faculty(self):
    return self.groups.filter(name='Faculty group').exists()

现在更改您的模板:

{% if user.is_faculty %}
      <li>Faculty</li>
{% endif %}

答案 1 :(得分:1)

{% if request.user.groups.all.0.name == 'the group name' %}
      <li>Faculty</li>
 {% endif %}

试试这个