【发布时间】:2015-01-15 19:57:14
【问题描述】:
在上下文处理器中,我希望能够访问在装饰器中设置的值。所以事件的顺序是:
- 装饰器设置值
- 上下文处理器在访问值的情况下运行
- 视图被渲染
最终目标是能够有条件地仅为某些视图运行上下文处理器。也许有比使用装饰器更好的方法?
【问题讨论】:
标签: django django-views decorator
在上下文处理器中,我希望能够访问在装饰器中设置的值。所以事件的顺序是:
最终目标是能够有条件地仅为某些视图运行上下文处理器。也许有比使用装饰器更好的方法?
【问题讨论】:
标签: django django-views decorator
您可以让装饰器向请求对象添加一个属性,然后在上下文处理器中访问该值。
例如,您可以使用以下装饰器:
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:
...
【讨论】: