在视图中,如何确定哪个命名的url模式导致调用该视图的URL调度程序?

时间:2013-02-06 06:51:52

标签: django

我的URLConf中有几个名为url()的导致相同的视图。从该视图中,我如何找出哪些url()匹配并导致视图被调用?

1 个答案:

答案 0 :(得分:1)

查看request对象,它是视图的第一个位置参数。它具有request.path属性。

要了解解析器如何将当前request.path与URLConf匹配,请调用解析器:

from django.core.urlresolvers import resolve
resolver_match = resolve(request.path)

在视图中,resolver_match绝对保证是ResolverMatch对象,其中包含url_name属性。此属性是匹配的url()名称。

ResolverMatch对象具有以下属性:

.app_name {str} or {NoneType}
.args {tuple}
.kwargs {dict}
.namespace {str}
.namespaces {list}
.url_name {str}
.view_name {str}