将值从装饰器传递到 Django 中的上下文处理器

Pass a value from a decorator to a context processor in django

在上下文处理器中,我希望能够访问在装饰器中设置的值。所以事件的顺序是:

最终目标是能够有条件地运行 仅针对某些视图的上下文处理器。也许有比使用装饰器更好的方法?

您可以让装饰器向请求对象添加一个 属性,然后在上下文处理器中访问该值。

例如,您可以使用以下装饰器:

def add_value(function):
    def wrap(request, *args, **kwargs):
        request.extra_value = True
        return function(request, *args, **kwargs)
    return wrap

然后你可以在上下文处理器中访问它:

def extra_value_context_processor(request):
    if request.extra_value:
        ...