首页 > 解决方案 > Django中的组基本权限rest api

问题描述

我正在为我的登录 api 使用 Django 休息框架。现在我想通过 api 只登录某些组用户。我已经创建了组并将用户分配给该组。我创建了一个权限类并用于 APIView,但它显示“未提供身份验证凭据”。

这是我的 permissions.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

这是我的观点.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 打印request.user 时,它穿上了“匿名用户”。

标签: pythondjangodjango-rest-framework

解决方案


推荐阅读