首页 > 解决方案 > Django 多个用户组

问题描述

好的,所以我有多个用户,他们属于一个或多个用户组(我有 4 个组)。

每个组都有自己的引导卡,显示在 HTML 页面上。

如何根据用户组显示 1、2、3 或更多卡片?

如果用户在 group1 中,我想渲染 card1,但如果用户在 group1 AND group2 中,我想渲染 card1 和 card2 等。

我尝试了 {% if request.user.is_superuser %} 和 {%if 'group name' in user.groups.all.0.name %},但这仅适用于用户在一个组中的情况。

谢谢。

标签: djangodjango-modelsdjango-usersdjango-taggingdjango-3.0

解决方案


从views.py 中获取用户组

def view(request):
    user_groups = request.user.groups.all()

    return render(request, 'app/temp.html',{'user_groups': user_groups})

临时文件

{% for group in user_groups %}
    {% if group.name=='Group1' %}
    <p>show card1</p>
    {% elif group.name=='Group2' %}
     <p>show card2</p>
    {% else %}
     <p>show card3</p>

{% endfor %}

推荐阅读