Description of process_response Middleware method incorrect
|Reported by:||mmalone||Owned by:||nobody|
|Severity:||Keywords:||middleware documentation response|
|Cc:||mjmalone@…||Triage Stage:||Ready for checkin|
|Has patch:||yes||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
The Middleware documentation says that if some middleware returns an HttpResponse object from its process_response() method, other middleware that follows it in the chain will not be executed. While this is true for the process_request() and process_view() methods, it is not true for process_response() (see relevant code for how request, view, and response middleware is handled). In fact, the process_response() method must return an HttpResponse object, as its return value is used as the response object passed to any other middleware, and eventually rendered as an HTTP response.
I also think it's worth noting in the description of process_response() that, if present, this method will always be called for every response, even if request middleware that precedes it in the middleware stack short circuits and returns an HttpResponse.
Since both of these appear to be intentional design decisions I've attached a small documentation patch that addresses both issues.
Change History (4)
Changed 5 years ago by mmalone
comment:1 Changed 5 years ago by Alex
- Needs documentation unset
- Needs tests unset
- Patch needs improvement unset
- Triage Stage changed from Unreviewed to Ready for checkin