Opened 6 years ago

Closed 6 years ago

#6679 closed (fixed)

decorator_from_middleware() doesn't call process_view() properly

Reported by: Gulopine Owned by: gwilson
Component: Uncategorized Version: master
Severity: Keywords:
Cc: Triage Stage: Ready for checkin
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: UI/UX:


In django.utils.decorators.decorator_from_middleware(), the portion which calls the middleware's process_view() method does with the dynamic argument modifies * and **, even though the middleware protocol specifies that the args and kwargs values should come in as separate distinct arguments.

If this function is used to transform any middleware that implements the process_view() method into a decorator, a TypeError is raised when any view using that decorator is executed.

TypeError: process_view() got an unexpected keyword argument '...'

Attachments (1)

6679.diff (610 bytes) - added by Gulopine 6 years ago.
Simple fix, removing the argument modifiers so process_view() gets called the way it should

Download all attachments as: .zip

Change History (4)

Changed 6 years ago by Gulopine

Simple fix, removing the argument modifiers so process_view() gets called the way it should

comment:1 Changed 6 years ago by Simon G <dev at simon dot net dot nz>

  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset
  • Triage Stage changed from Unreviewed to Ready for checkin

comment:2 Changed 6 years ago by gwilson

  • Owner changed from nobody to gwilson
  • Status changed from new to assigned

working on some tests...

comment:3 Changed 6 years ago by gwilson

  • Resolution set to fixed
  • Status changed from assigned to closed

(In [7269]) Fixed #6679 -- In decorator_from_middleware, don't unpack arguments when calling a middleware's
process_view method, thanks Gulopine.

Add Comment

Modify Ticket

Change Properties
<Author field>
as closed
as The resolution will be set. Next status will be 'closed'
The resolution will be deleted. Next status will be 'new'

E-mail address and user name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.