gpt4 book ai didi

django - View 集的自定义权限

转载 作者:行者123 更新时间:2023-12-02 09:24:03 24 4
gpt4 key购买 nike

我试图找到一种在 View 集上创建自定义权限的方法。
我想实现这样的东西:

class ActivityViewSet(viewsets.ModelViewSet):
queryset = Activity.objects.all()
serializer_class = ActivitySerializer
if request.method == 'PUT':
permission_classes = (permissions.IsOwner)
elif request.method == 'LIST':
permission_classes = (permissions.IsAdmin)
else :
permission_classes = (permissions.AllowAny)

IE:按方法排序权限。 (上面的代码不起作用,导致“请求”不被识别)

在文档的“自定义权限”部分找不到任何用途,但也许我只是瞎了眼。 (覆盖 BasePermission?如何?谁?在哪里?)

谢谢 :)

最佳答案

View 集使用 action确定从 get_permissions 调用的 HTTP 动词和权限方法,因此您可以覆盖它:

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

def get_permissions(self):
if self.action == 'update':
return IsOwner()
elif self.action == 'list':
return IsAdminUser()
else :
return AllowAny()

关于django - View 集的自定义权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39353063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com