mirror of https://github.com/django/django.git
git-svn-id: http://code.djangoproject.com/svn/django/trunk@807 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
a933432a70
commit
71564b4349
|
@ -0,0 +1,22 @@
|
|||
"Functions that help with dynamically creating decorators for views."
|
||||
|
||||
def decorator_from_middleware(middleware_class):
|
||||
"""
|
||||
Given a middleware class (not an instance), returns a view decorator. This
|
||||
lets you use middleware functionality on a per-view basis.
|
||||
"""
|
||||
def _decorator_from_middleware(view_func, *args, **kwargs):
|
||||
middleware = middleware_class(*args, **kwargs)
|
||||
def _wrapped_view(request, *args, **kwargs):
|
||||
if hasattr(middleware, 'process_request'):
|
||||
result = middleware.process_request(request)
|
||||
if result is not None:
|
||||
return result
|
||||
response = view_func(request, *args, **kwargs)
|
||||
if hasattr(middleware, 'process_response'):
|
||||
result = middleware.process_response(request, response)
|
||||
if result is not None:
|
||||
return result
|
||||
return response
|
||||
return _wrapped_view
|
||||
return _decorator_from_middleware
|
Loading…
Reference in New Issue