idi*_*dik 2 django http-method django-views django-rest-framework
我试图找到一种方法来创建视图集的自定义权限.我想实现这样的事情:
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)
Run Code Online (Sandbox Code Playgroud)
IE:按方法排序权限.(上面的代码不起作用,因为"请求"未被识别)
在文档的"自定义权限"部分找不到任何用处,但也许我只是盲目.(重写BasePermission?怎么样?谁?在哪里?)
谢谢 :)
Viewsets用于action确定HTTP是从get_permissions方法调用的动词和权限,因此您可以覆盖它:
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()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1121 次 |
| 最近记录: |