[英]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.