禁用特定应用程序的django缓存

时间:2014-09-02 16:01:05

标签: django caching

对于我项目的90%,我想要缓存。缓存非常棒。

然而,总有例外。我希望我的项目中的一个特定应用程序不使用任何缓存,无论其任何视图。

如果有一种方法可以为整个站点启用缓存,但是为应用程序禁用缓存,那将是多么美妙的事情。我知道基于每个视图的@never_cache装饰器,这是我最好的选择还是有一个不太精细的方式?

1 个答案:

答案 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')
)