django {% if user.groups == 'FK' %} 不起作用[重复]

2023-12-25

我正在使用 django 制作一个网站。

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

For example, one of my users(username is 'hong) belongs to 'FC' group as you see below. enter image description here

But,

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

if user.groups == ' ' 不起作用。

如何查看用户所属的组?我必须按组区分用户。


你必须使用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.filter(name=group_name)
    if group:
        group = group.first()
        return group in user.groups.all()
    else:
        return False

然后,在您的模板中,如果您想指定零件,...

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

它在我的应用程序中适用于不同的组(管理员、用户、访客,..);)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

django {% if user.groups == 'FK' %} 不起作用[重复] 的相关文章

随机推荐