【问题标题】:Pass a value from a decorator to a context processor in django将值从装饰器传递到 django 中的上下文处理器
【发布时间】:2015-01-15 19:57:14
【问题描述】:

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

  • 装饰器设置值
  • 上下文处理器在访问值的情况下运行
  • 视图被渲染

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

【问题讨论】:

    标签: django django-views decorator


    【解决方案1】:

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

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

    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:
            ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-03
      • 2016-02-03
      • 1970-01-01
      • 2015-08-01
      • 2022-07-12
      • 2021-11-21
      • 1970-01-01
      • 2012-12-13
      相关资源
      最近更新 更多