django - 如何为超级用户禁用 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):
...
推荐阅读
- javascript - 如何计算两个输入字段并在输入元素中显示总和
- python - 理解时间增量的概念
- node.js - Error MSB4062: The "SetEnv" task could not be loaded from the assembly
- c++ - APUE第7章中的hello world以代码0退出
- java - Selenium ChromeDriver 抛出 NoSuchMethodException
- react-native - 从屏幕中删除元素后 React Native 伪泄漏内存(ios)
- javascript - jQuery UI - 从范围滑块中选择一个类
- python - 如何在 Python 中获取 UTF-16(十进制)?
- javascript - 如何阻止 Chrome 和 Firefox 按字母顺序对 sessionStorage 进行排序?
- javascript - 导入的图像没有 SRC 属性,而所需的图像名称很奇怪