创建自定义 Django Rest Framework 权限

问题描述

我创建了一个 django rest 自定义权限,为了测试目的,我确保 has_object_permissionhas_permission 重新运行 False

from rest_framework import permissions


class IsWorker(permissions.BasePermission):
    message = "Login with supplier Account"
    
    def has_object_permission(self,request,view,obj):
        return False
        
    def has_permission(self,view):
        return False
        

为什么这个视图没有按预期工作?

from packages.models import Package
from .serializers import WorkerPackageSerializer
from rest_framework.permissions import IsAuthenticated
from api.permissions import IsWorker

class WorkerPackageDetailViewSet(generics.RetrieveUpdateDestroyAPIView):

    serializer_class = WorkerPackageSerializer
    permission_classes = (IsAuthenticated,IsWorker)
    lookup_field = "id"

    def get_queryset(self):
        return Package.objects.all()

期望: 我认为它会返回带有消息 forbiddenLogin with supplier Account 错误,但如果用户未通过身份验证,则返回未通过身份验证的错误,如果用户通过身份验证,则返回数据而没有任何错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)