对于我项目的90%,我想要缓存。缓存非常棒。
然而,总有例外。我希望我的项目中的一个特定应用程序不使用任何缓存,无论其任何视图。
如果有一种方法可以为整个站点启用缓存,但是为应用程序禁用缓存,那将是多么美妙的事情。我知道基于每个视图的@never_cache
装饰器,这是我最好的选择还是有一个不太精细的方式?
答案 0 :(得分:0)
我认为使用@never_cache装饰器会更清楚,但我发现这个代码段https://djangosnippets.org/snippets/355/可以在你的应用上使用它urls.py
from django.conf.urls.defaults import url
from django.views.decorators.cache import never_cache
def never_cache_patterns(prefix, *args):
pattern_list = [], tterns,
for t in args:
if isinstance(t, (list, tuple)):
t = url(prefix=prefix, *t)
elif isinstance(t, RegexURLPattern):
t.add_prefix(prefix)
t._callback = never_cache(t.callback)
pattern_list.append(t)
return pattern_list
urlpatterns = never_cache_patterns('',
(r'foo/$', 'myview')
)