【问题标题】:How to disable Django cache view for superuser?如何为超级用户禁用 Django 缓存视图?
【发布时间】:2021-08-09 17:09:03
【问题描述】:

我使用 cache_page 装饰器在 Django 中缓存视图。

如何禁用超级用户或授权用户的缓存?

【问题讨论】:

标签: django caching


【解决方案1】:

您可以在 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):
    ...

【讨论】:

    猜你喜欢
    • 2017-05-31
    • 2013-12-07
    • 1970-01-01
    • 2011-09-26
    • 2014-11-06
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    相关资源
    最近更新 更多