未为自定义API调用has\u object\u权限

2024-09-30 05:26:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个API POST/api/samples/sample_id/check的视图集SampleViewSet。我已经为它定义了对象级权限。在

class SamplePermission(BasePermission):
    def has_object_permission(self, request, view, obj):
        return True

class SampleViewSet(viewsets.ModelViewSet):
    permission_classes = (SamplePermission, )

    @detail_route(methods=['post'])
    def check(self, request, pk=None):
        if pk:
            print "check"

当我调用API POST/api/samples/check时,没有调用具有“u object”权限的函数。原因是什么?在


Tags: selfapi权限objectrequestdefcheckpost
1条回答
网友
1楼 · 发布于 2024-09-30 05:26:00

权限无效,因为方法check_object_permissions调用了get_object函数。所以您应该在check函数中调用其中一个函数:

    @detail_route(methods=['post'])
    def check(self, request, pk=None):
        obj = self.get_object()
        ....

或者您可以直接在detail_route中添加权限

^{pr2}$

相关问题 更多 >

    热门问题