From f8dbea1a4559dd8635ac877a9bffb3599d336132 Mon Sep 17 00:00:00 2001 From: exg1o <77574092+EXG1O@users.noreply.github.com> Date: Wed, 29 Jan 2025 07:51:38 +0200 Subject: [PATCH] Add note in 'Introspecting ViewSet actions' docs section (#9633) * Fix `Introspecting ViewSet actions` docs section * Update docs/api-guide/viewsets.md --------- Co-authored-by: Bruno Alla --- docs/api-guide/viewsets.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/api-guide/viewsets.md b/docs/api-guide/viewsets.md index 43007e95d..22acfe327 100644 --- a/docs/api-guide/viewsets.md +++ b/docs/api-guide/viewsets.md @@ -128,6 +128,8 @@ You may inspect these attributes to adjust behavior based on the current action. permission_classes = [IsAdminUser] return [permission() for permission in permission_classes] +**Note**: the `action` attribute is not available in the `get_parsers`, `get_authenticators` and `get_content_negotiator` methods, as it is set _after_ they are called in the framework lifecycle. If you override one of these methods and try to access the `action` attribute in them, you will get an `AttributeError` error. + ## Marking extra actions for routing If you have ad-hoc methods that should be routable, you can mark them as such with the `@action` decorator. Like regular actions, extra actions may be intended for either a single object, or an entire collection. To indicate this, set the `detail` argument to `True` or `False`. The router will configure its URL patterns accordingly. e.g., the `DefaultRouter` will configure detail actions to contain `pk` in their URL patterns.