繁体   English   中英

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

[英]Get reverse URL name from full path

有谁知道我如何从request.get_full_path()获取URL名称?

例如:

我在urls.py中有此URL

url(r'^evaluation-active/$', 'web.evaluation.evaluation', name='evaluation'),

在我的context_processor.py中:

def is_evaluation(request):
    return {"test":request.get_full_path()}

如何返回“评估”而不是“ / evaluation-active /”?

谢谢

从django docs

HttpRequest.resolver_match

Django 1.5的新功能。 代表解析的URL的ResolverMatch实例。 仅在发生URL解析之后才设置此属性,这意味着该属性在所有视图中可用,但在发生URL解析之前执行的中间件方法中不可用(例如process_request,可以改用process_view)。

ResolverMatch对象中有url_name属性:

def is_evaluation(request):
    return {"test": request.resolver_match.url_name}

对于<1.5的django版本,这里有答案: 如何使用Django获取当前的urlname?

如果使用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}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM