我正在使用django制作网站。
{%if user.groups ==' FC' %}在我的模板中不起作用。我有这样的组。
例如,我的一个用户(用户名是' hong)属于' FC'如下所示,小组。
但是,
{% 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;组?我必须按组区分用户。
答案 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 %}