有谁知道如何从request.get_full_path()获取URL名称?
例如:
我在urls.py中有这个网址
url(r'^evaluation-active/$', 'web.evaluation.evaluation', name='evaluation'),
在我的context_processor.py中:
def is_evaluation(request):
return {"test":request.get_full_path()}
如何返回“评估”而不是“/ evaluation-active /”?
由于
答案 0 :(得分:4)
来自django docs:
<强> HttpRequest.resolver_match 强>
Django 1.5中的新功能。 ResolverMatch的一个实例代表 已解决的网址。此属性仅在URL解析后设置 地方,这意味着它可以在所有视图中使用,但不能在中间件中使用 在url解析之前执行的方法(如 process_request,你可以使用process_view)。
url_name
对象中有ResolverMatch
个属性:
def is_evaluation(request):
return {"test": request.resolver_match.url_name}
对于django版本&lt; 1.5这里有答案:How to get the current urlname using Django?
答案 1 :(得分:1)
如果使用django 1.5或更高版本,请使用request.resolver_match获取ResolverMatch对象。
def is_evaluation(request):
return {"test":request.resolver_match.url_name}
如果使用1.5之前的版本,则使用resolve:
def is_evaluation(request):
return {"test":resolve(request.path_info).url_name}