Пользовательские групповые разрешения Django возвращают код 401 как неавторизованный пользователь
Я хочу создать права пользователя на основе членства в группе пользователей.
Но следующий код возвращает следующее сообщение об ошибке "Request failed with status code 401".
Для авторизованного пользователя print(request.user)
верните следующую строку: "AnonymousUser".
permission.py:
from django.contrib.auth.models import Group
from rest_framework import permissions
def is_in_group(user, group_name):
try:
return Group.objects.get(name=group_name).user_set.filter(id=user.id).exists()
except Group.DoesNotExist:
return False
class HasGroupPermission(permissions.BasePermission):
def has_permission(self, request, view):
print(request.user)
required_groups_mapping = getattr(view, "required_groups", {})
required_groups = required_groups_mapping.get(request.method, [])
return all([is_in_group(request.user, group_name) if group_name != "__all__" else True for group_name in required_groups]) or (request.user and request.user.is_staff)
views.py:
from .models import AppOne
from .serializers import AppOnesSerializer
from rest_framework import generics
from scripts.permission import HasGroupPermission
class AppOneView(generics.ListAPIView):
queryset = AppOne.objects.all()
serializer_class = AppOnesSerializer
permission_classes = [HasGroupPermission]
required_groups = {
'GET': ['group1'],
'POST': ['group1'],
'PUT': ['group1'],
}
моя модель пользователя:
class CustomUser(AbstractUser):
age = models.PositiveIntegerField(blank=True, null=True)
(почти ничего лишнего не пробовал, так как я новичок)