summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorMarc Tamlyn <marc.tamlyn@gmail.com>2014-02-09 11:10:05 +0000
committerMarc Tamlyn <marc.tamlyn@gmail.com>2014-02-09 11:23:09 +0000
commit80cd64ee17191ffb235c5850a8fa60cae96c1b89 (patch)
tree8d7166fcc3e9b956a9d912f2c96d6200607cf7a9 /django
parent97a8fd4682b27a3a9f280e661e58db4bae55590a (diff)
Fixed #21247 -- Made method_decorator play nicely with descriptors
When a method decorator was used in conjunction with a decorator implemented as a descriptor, method_decorator did not correctly respect the method binding. Thanks for Graham Dumpleton for the report and initial patch.
Diffstat (limited to 'django')
-rw-r--r--django/utils/decorators.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/django/utils/decorators.py b/django/utils/decorators.py
index 4ccf1d69df..fbcf4edf13 100644
--- a/django/utils/decorators.py
+++ b/django/utils/decorators.py
@@ -22,7 +22,7 @@ def method_decorator(decorator):
def _wrapper(self, *args, **kwargs):
@decorator
def bound_func(*args2, **kwargs2):
- return func(self, *args2, **kwargs2)
+ return func.__get__(self, type(self))(*args2, **kwargs2)
# bound_func has the signature that 'decorator' expects i.e. no
# 'self' argument, but it is a closure over self so it can call
# 'func' correctly.