django {%if user.groups ==' FC'努力工作

时间:2017-07-08 08:01:33

标签: django

我正在使用django制作网站。

{%if user.groups ==' FC' %}在我的模板中不起作用。我有这样的组。

my user group

例如,我的一个用户(用户名是' hong)属于' FC'如下所示,小组。    enter image description here

但是,

{% if user.groups == 'FC' %}
      <li><a href="{% url 'register' %}">register form</a></li>
      <li><a href="{% url 'mypage' %}">fc's my page</a></li>
{% else %}
 <li><a href="{% url 'PT_mypage' %}">fitness' my page</a></li>
{% endif %}

如果user.groups ==&#39; &#39;不起作用。

我如何检查用户&#39;组?我必须按组区分用户。

2 个答案:

答案 0 :(得分:3)

您必须使用tags。 在您的应用程序中,您可以创建一个名为templatetags

的目录

然后,您必须在文件user_tags.py内创建,其中包含:

from django import template
from django.contrib.auth.models import Group 

register = template.Library() 

@register.filter(name='has_group') 
def has_group(user, group_name):
    group =  Group.objects.get(name=group_name) 
    return group in user.groups.all() 

然后,在您的模板中,如果您想指定部分,......

{% load user_tags %}
...
...
{% if request.user|has_group:"yourgroupe" %}
# part which will only accessible for users registered in `yourgroup` 
{% endif %} 

它可以在我的应用程序中使用不同的组(管理员,用户,访问者,...);)

答案 1 :(得分:-1)

尝试以下

{% for group in  request.user.groups.all %}
{%  if 'FC' == group.name %}
   <<< write your code that you want >>>
{% endif %}
{% endfor %}