From ab6d5d05f799adf0ddf6e9133acfd42063e4795a Mon Sep 17 00:00:00 2001 From: Soeren Wegener Date: Thu, 31 Jan 2019 15:25:16 +0100 Subject: [PATCH] Slight description of why additional kwargs may be needed with extra actions --- docs/api-guide/viewsets.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/api-guide/viewsets.md b/docs/api-guide/viewsets.md index e29e4571e..a352e3be4 100644 --- a/docs/api-guide/viewsets.md +++ b/docs/api-guide/viewsets.md @@ -168,9 +168,9 @@ A more complete example of extra actions: serializer = self.get_serializer(recent_users, many=True) return Response(serializer.data) -The decorator can additionally take extra arguments that will be set for the routed view only. Any class property of the `ViewSet` is therefore a valid argument for `@action()` (e.g. `serializer_class`, `queryset`, `permission_classes`). For example: +The decorator can additionally take extra arguments that will be set for the routed view only. Any class property of the `ViewSet` is therefore a valid argument for `@action()` (e.g. `serializer_class`, `queryset`, `permission_classes`). For example, an action which sets a password needs different permissions and a different form to be displayed compared to the regular `UserViewSet`: - @action(detail=True, methods=['post'], permission_classes=[IsAdminOrIsSelf]) + @action(detail=True, methods=['post'], permission_classes=[IsAdminOrIsSelf], serializer_class=PasswordSerializer) def set_password(self, request, pk=None): ...