根据用户组生成特定视图的 Django 用户权限

Django user permission on generate specific view depending on user group

我是 Django 用户权限的新手并且是第一次设置它。我需要在用户登录后生成不同的视图。生成的视图取决于用户所属的组。

假设我们有两个用户 user1 和 user2

user1 属于 group1

user2属于group1和group2

对于 user1,我想呈现一个特定于 group1 的视图。

对于 user2,呈现的视图必须同时包含 group1 和 group2 的特定内容

在我当前的 views.py 中,我只能确定用户是否已登录,如果为真,将呈现页面 staffLoginIndex.html。要检查用户属于哪个组,是否应该在实际中进行此检查get(self, request, *args, **kwargs)?

from django.shortcuts import render
from django.views import View
from django.contrib.auth.mixins import LoginRequiredMixin

# Create your views here.
class StaffLoginIndexView(LoginRequiredMixin, View):
    login_url = '/accounts/login/'

    def get(self, request, *args, **kwargs):
        #Check which group the user belongs to
        
        context = dict()
        context['user'] = request.user
        return render(request, template_name='staff/staffLoginIndex.html', context=context)

您可以使用 request.user.groups.all() 访问用户组 它将 return 一个 QuerySet。 然后您可以根据每个用户组自定义您的模板。