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