【发布时间】:2022-01-05 00:02:05
【问题描述】:
我在 ViewSet 中有一个动作装饰器,它接受两种方法:
class ItemViewSet(viewsets.ModelViewSet):
queryset = Item.objects.all()
serializer = DefaultItemSerializer
@action(detail=True, method=["get", "post"], permission_classes=[AllowAny])
def custom_action(self, request, pk):
qs = self.get_object()
if request.method == "GET":
return Response(CustomItemSerializer(qs).data, status=200)
else:
serializer = CustomItemSerializer(qs, data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=201)
return Response(serializer.data, status=400)
目前get和post拥有AllowAny相同的权限。
如果我希望它们与众不同怎么办?例如。 get 是 AllowAny 而 post 应该只是 IsAdminUser
【问题讨论】:
标签: django django-rest-framework