mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
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.
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user