如何从Django URL路径中提取URL名称及路径信息?
提取Django URLPattern中的路径与名称
直接修改你的视图代码,利用Django URLPattern 对象的属性来提取所需内容:
def siteurls_view(request): path_list = urls.main_urlpatterns # 初始化两个空列表分别存路径和名称 url_paths = [] url_names = [] for p in path_list: # 提取URL路径(对应path()的第一个参数) url_paths.append(p.pattern.route) # 提取URL名称(对应path()的name参数) if p.name: url_names.append(p.name) # 后续可根据需求使用这两个列表,比如传入模板渲染 context = { 'url_paths': url_paths, 'url_names': url_names } return render(request, 'your_template.html', context)
关键说明:
p.pattern.route:获取URL定义里的路径字符串,比如'consumptions_points/send/'p.name:获取URL的名称,比如'send_consumptions_points'- 加入
if p.name判断是为了兼容没有设置name参数的URL,避免报错
如果想简化代码,也可以用列表推导式:
def siteurls_view(request): path_list = urls.main_urlpatterns url_paths = [p.pattern.route for p in path_list] url_names = [p.name for p in path_list if p.name] context = {'url_paths': url_paths, 'url_names': url_names} return render(request, 'your_template.html', context)
内容的提问来源于stack exchange,提问作者gilvictor
相关产品推荐
相关产品推荐

