如何知道从哪个视图调用Django上下文处理器?

时间:2014-08-02 15:38:00

标签: django

我想将字典中的一组标志传递给django模板,但我想为被调用的不同视图设置不同的标志。我想通过上下文处理器实现它,但我无法弄清楚方法。

比如说:

在上下文处理器中我有:

FLAGS = {
    'Flag1': False,
    'Flag2': False,
}

我想在调用view_method1时引入一个逻辑说明我应该能够在将FLAGS['Flag1'] = True呈现给模板之前设置它。

为了便于讨论,我们假设我们有以下上下文处理器:

def user_context(request):

     FLAGS = {
    'Flag1': False,
    'Flag2': False,
}

除此之外的任何其他方法也将受到赞赏。感谢。

view_function = resolve(request.path_info).url_name

view_function = resolve(request.path_info).func

1 个答案:

答案 0 :(得分:1)

您在上下文处理器中有可用的请求对象。

请求对象知道request.resolver_match属性中的URL分派结果:

https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.resolver_match