From abf90308c1cffc451c3c77daa4140606bd458e4f Mon Sep 17 00:00:00 2001 From: sai09111995 Date: Thu, 5 Feb 2026 18:39:58 +0530 Subject: [PATCH] Clarify APIView.dispatch request lifecycle in docstring --- rest_framework/views.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/rest_framework/views.py b/rest_framework/views.py index 327ebe903..8edf8fae2 100644 --- a/rest_framework/views.py +++ b/rest_framework/views.py @@ -490,9 +490,22 @@ class APIView(View): # be overridden. def dispatch(self, request, *args, **kwargs): """ - `.dispatch()` is pretty much the same as Django's regular dispatch, - but with extra hooks for startup, finalize, and exception handling. + Dispatch the incoming request to the appropriate handler method. + + This method implements the core request/response lifecycle for + Django REST Framework views: + + 1. Wraps the incoming Django HttpRequest in a REST framework Request. + 2. Performs content negotiation, authentication, permission, and + throttling checks. + 3. Resolves and calls the appropriate HTTP method handler + (e.g. get(), post(), put()). + 4. Handles any exceptions raised during processing and converts + them into appropriate Response objects. + 5. Finalizes and returns the response with proper rendering + and headers applied. """ + self.args = args self.kwargs = kwargs request = self.initialize_request(request, *args, **kwargs)