# django__django-14787
# Loki Mode Multi-Agent Patch
# Attempts: 1

--- a/django/utils/decorators.py
+++ b/django/utils/decorators.py
@@ -1,5 +1,5 @@
 "Functions that help with dynamically creating decorators for views."
-
+from functools import WRAPPER_ASSIGNMENTS, partial, update_wrapper, wraps
 
 class classonlymethod(classmethod):
     def __get__(self, instance, cls=None):
@@ -23,8 +23,6 @@ def _update_method_wrapper(_wrapper, decorator):
 
 def _multi_decorate(decorators, method):
     """Decorate `method` with one or more function decorators."""
-    from functools import wraps
-
     # The 'method' may not have all the attributes expected from a function,
     # e.g. if it is a functools.partial object.
     #
@@ -37,7 +35,11 @@ def _multi_decorate(decorators, method):
     def _wrapper(self, *args, **kwargs):
         bound_method = method.__get__(self, type(self))
         return decorators(bound_method)(*args, **kwargs)
-    return wraps(method)(_wrapper)
+    # Copy over wrapper assignments, filtering out attributes that don't exist
+    # on the wrapped object (e.g. functools.partial doesn't have __name__).
+    assigned = (a for a in WRAPPER_ASSIGNMENTS if hasattr(method, a))
+    update_wrapper(_wrapper, method, assigned=assigned)
+    return _wrapper
 
 
 def method_decorator(decorator, name=''):