できません。サイトごとのキャッシュは、特定のビューではなく要求と応答のみを考慮するミドルウェアを使用して実現されます。
ただし、これはパッチを当てたdjango.middleware.cache.FetchFromCacheMiddlewareを提供することで実現できます。
class ManagedFetchFromCacheMiddle(FetchFromCacheMiddleware):
def process_request(self, request):
if should_exempt(request):
request._cache_update_cache = False
return
return super(ManagedFetchFromCacheMiddle, self).process_request(request)
def should_exempt(request):
"""Any predicator to exempt cache on a request
For your case, it looks like
if request.path.startswith('/account/'):
return True
"""
MIDDLEWARE_CLASSES上記のパスに 'django.middleware.cache.FetchFromCacheMiddleware' を交換します。
おそらく、上記のジェネリック版はDjangoコミュニティへのコミットに適しています= p
出典
2012-03-25 15:40:47
okm
Hmm。つまり、私はこれを無効にして、ビューごとに1つずつ使用する必要があります。 – AppleGrew
@AppleGrewはちょうど解決策を提供しました – okm
私はビューとテンプレートごとのキャッシュに行くと思います。これが他人を助けることを希望してあなたの答えを受け入れました。もう1つのことは、それぞれのURLの周りに意図したキャッシュ機能をラップすることができる関数を書くことが可能だろうと思っていたかもしれません。これはうまくいくかもしれませんが、まず 'include()'が返すものを正確に調べる必要があります。 – AppleGrew