Django Rest framework Viewset Permissions“create”without“list”

2024-04-29 12:11:08 发布

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

我有以下视图集:

class ActivityViewSet(viewsets.ModelViewSet):
    queryset = Activity.objects.all()
    serializer_class = ActivitySerializer

    def get_permissions(self):
        if self.action in ['update','partial_update','destroy','list']:
            self.permission_classes = [permissions.IsAdminUser,]
        elif self.action in ['create']:
            self.permission_classes = [permissions.IsAuthenticated,]
        else :
            self.permission_classes = [permissions.AllowAny,]
        return super(self.__class__, self).get_permissions()

如图所示,Im试图在不允许“list”的情况下为经过身份验证的用户(不是管理员)允许“create”方法。 奇怪的是,这个视图集没有为经过身份验证的用户创建或列表。 我查过了,只是为了确认一下,下面的代码:

class RouteOrderingDetail(mixins.CreateModelMixin, 
                   mixins.RetrieveModelMixin, 
                   mixins.DestroyModelMixin,
                   mixins.UpdateModelMixin,
                   viewsets.GenericViewSet):
    queryset = RouteOrdering.objects.all()
    serializer_class = RouteOrderingSerializer

这个允许视图中有create但没有list(但它对我不可用,因为我确实需要list选项avilable)。

希望问题是清楚的。任何帮助都将被告知。


Tags: selfpermissionsgetobjectscreateallmixinslist