从完整路径获取反向URL名称

时间:2014-03-01 14:26:09

标签: python django

有谁知道如何从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 /”?

由于

2 个答案:

答案 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}