【发布时间】:2021-08-09 17:09:03
【问题描述】:
我使用 cache_page 装饰器在 Django 中缓存视图。
如何禁用超级用户或授权用户的缓存?
【问题讨论】:
我使用 cache_page 装饰器在 Django 中缓存视图。
如何禁用超级用户或授权用户的缓存?
【问题讨论】:
您可以在 CacheMiddleware 类的帮助下创建自定义装饰器
from django.middleware.cache import CacheMiddleware
from django.utils.decorators import decorator_from_middleware_with_args
class CustomCacheMiddleware(CacheMiddleware):
def process_request(self, request):
if request.user.is_superuser:
request._cache_update_cache = False
return None
return super().process_request(request)
def custom_cache_page(timeout, *, cache=None, key_prefix=None):
return decorator_from_middleware_with_args(CustomCacheMiddleware)(
cache_timeout=timeout, cache_alias=cache, key_prefix=key_prefix
)
@custom_cache_page(60 * 15)
def my_view(request):
...
【讨论】: