mirror of https://github.com/django/django.git
Corrected regressions introduced in r11586 and r11593
I read the order of arguments in the docs incorrectly, doh! git-svn-id: http://code.djangoproject.com/svn/django/trunk@11594 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
d6c2286712
commit
a97648a7e0
|
@ -23,20 +23,24 @@ from django.middleware.cache import CacheMiddleware
|
|||
def cache_page(*args):
|
||||
# We need backwards compatibility with code which spells it this way:
|
||||
# def my_view(): pass
|
||||
# my_view = cache_page(123, my_view)
|
||||
# my_view = cache_page(my_view, 123)
|
||||
# and this way:
|
||||
# my_view = cache_page(123)(my_view)
|
||||
# and possibly this way (?):
|
||||
# my_view = cache_page(123, my_view)
|
||||
|
||||
# We also add some asserts to give better error messages in case people are
|
||||
# using other ways to call cache_page that no longer work.
|
||||
timeout = args[0]
|
||||
if len(args) > 1:
|
||||
assert len(args) == 2, "cache_page accepts at most 2 arguments"
|
||||
fn = args[1]
|
||||
assert callable(fn), "cache_page is expecting 2nd argument to be a callable"
|
||||
return decorator_from_middleware_with_args(CacheMiddleware)(timeout)(fn)
|
||||
if callable(args[0]):
|
||||
return decorator_from_middleware_with_args(CacheMiddleware)(args[1])(args[0])
|
||||
elif callable(args[1]):
|
||||
return decorator_from_middleware_with_args(CacheMiddleware)(args[0])(args[1])
|
||||
else:
|
||||
assert False, "cache_page must be passed either a single argument (timeout) or a view function and a timeout"
|
||||
else:
|
||||
return decorator_from_middleware_with_args(CacheMiddleware)(timeout)
|
||||
return decorator_from_middleware_with_args(CacheMiddleware)(args[0])
|
||||
|
||||
def cache_control(**kwargs):
|
||||
|
||||
|
|
|
@ -105,7 +105,7 @@ class DecoratorsTest(TestCase):
|
|||
"""
|
||||
def my_view(request):
|
||||
return "response"
|
||||
my_view_cached = cache_page(123, my_view)
|
||||
my_view_cached = cache_page(my_view, 123)
|
||||
self.assertEqual(my_view_cached(HttpRequest()), "response")
|
||||
|
||||
class MethodDecoratorAdapterTests(TestCase):
|
||||
|
|
Loading…
Reference in New Issue