mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	Fixed #5701 -- Fixed decorators to take the name, attributes, and docstring of the function they decorate by adding a modified version of the functools.wraps function from Python 2.5.  wraps has been altered to work with Django's curry function and with Python 2.3, which doesn't allow assignment of a function's __name__ attribute.  This fixes severaly annoyances, such as the online documentation for template filters served by the admin app.  This change is backwards incompatible if, for some reason, you were relying on the name of a Django decorator instead of the function it decorates.
				
					
				
			git-svn-id: http://code.djangoproject.com/svn/django/trunk@7153 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
		| @@ -2,6 +2,10 @@ | ||||
|  | ||||
| import re | ||||
| import random as random_module | ||||
| try: | ||||
|     from functools import wraps | ||||
| except ImportError: | ||||
|     from django.utils.functional import wraps  # Python 2.3, 2.4 fallback. | ||||
|  | ||||
| from django.template import Variable, Library | ||||
| from django.conf import settings | ||||
| @@ -35,7 +39,7 @@ def stringfilter(func): | ||||
|     for attr in ('is_safe', 'needs_autoescape'): | ||||
|         if hasattr(func, attr): | ||||
|             setattr(_dec, attr, getattr(func, attr)) | ||||
|     return _dec | ||||
|     return wraps(func)(_dec) | ||||
|  | ||||
| ################### | ||||
| # STRINGS         # | ||||
|   | ||||
		Reference in New Issue
	
	Block a user