我已经为我们的许多页面设置了页面级缓存。但是,有时管理员用户会登录以预览对站点的潜在更改。
有没有办法只为这些用户禁用页面级缓存?
我通读了文档,但什么也没看到。
更新:这是我基于 v1k45 的回答的尝试:
from django.middleware.cache import FetchFromCacheMiddleware
logger = logging.getLogger(__name__)
class ExceptImpersonateFetchFromCacheMiddleware(FetchFromCacheMiddleware):
def process_request(self, request):
# Break out of caching is we're using impersonate
if request.user and hasattr(request.user, 'is_impersonate') and request.user.is_impersonate:
logger.warning("Skipping cache_page for user %s because it is impersonation" % str(request.user))
request._cache_update_cache = False
return None
# Normal flow:
return super(ExceptImpersonateFetchFromCacheMiddleware, self).process_request(request)