Api rest для разрешения групповой базы в Django

#python #django #django-rest-framework

Вопрос:

я использую платформу Django rest для своего API входа в систему. Теперь я хочу войти только в определенную группу пользователей через api. Я создал группу и назначил в нее пользователя.Я создал класс разрешений и использовал для просмотра, но он показывает «»Учетные данные для аутентификации не были предоставлены».

Вот мои разрешения.класс py

 from rest_framework.permissions import BasePermission

class FanOnlyPermission(BasePermission):
    def has_permission(self, request, view):
        if request.user and request.user.groups.filter(name='fan'):
            return True
        return False
 

Вот мой view.py

 from rest_framework import views, permissions, status, generics
class UserLoginApiView(generics.GenericAPIView):
"""
User Login Api View
"""
permission_classes = (FanOnlyPermission, )

def post(self, request):
    """
    Handle POST request
    :param request:
    :return:
    """

    serializer = UserLoginSerializer(data=request.data)
    if serializer.is_valid(raise_exception=True):
        return Response(serializer.data, status=status.HTTP_200_OK)

    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
 

Я пытался связаться с почтальоном. когда я печатаю запрос.пользователь из permission.py это был «Анонимный пользователь».

Комментарии:

1. Какой тип аутентификации вы используете ? Вы установили переменные аутентификации rest в файле настроек ?

2. Вот мой setting.py REST_FRAMEWORK = { ‘КЛАССЫ ПРОВЕРКИ ПОДЛИННОСТИ ПО УМОЛЧАНИЮ’: ( ‘rest_framework.аутентификация. Проверка подлинности сеанса», «rest_framework.аутентификация. Проверка подлинности», ), «КЛАССЫ ПО УМОЛЧАНИЮ»: («rest_framework.разрешения. IsAuthenticated’, ), } на самом деле я хочу аутентификацию, где api входа проверяет только группу. если пользователь существует в группе, то для входа в систему другим способом будет показано, что в разрешении отказано.