Django使用url filter传递视图参数报错:Reverse for 'Home' not found
解决Django反向解析失败的问题
你的问题核心是URL配置没有给路径指定name属性,而且还有视图未在URL中注册,导致{% url %}标签找不到对应的解析目标。按以下步骤修改:
1. 修正URL配置文件
需要给每个path添加name参数,同时注册Imagenes视图:
from django.contrib import admin from django.urls import path # 补充导入Imagenes视图 from Gestiondepedidos.views import Home, Informacion, Imagenes urlpatterns = [ path('admin/', admin.site.urls), # 给每个path添加name属性,和模板中{% url %}的参数对应 path('Casa/', Home, name='Home'), path('Casa/Info/', Informacion, name='Informacion'), # 添加Imagenes对应的URL路径并指定name path('Casa/Imagenes/', Imagenes, name='Imagenes'), ]
2. 修正模板的HTML结构(可选但规范)
你的列表标签嵌套反了,应该是<ul>包含<li>,而不是<li>包含<ul>,修正后:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <header> <nav> <ul> <li><a href="{% url 'Home'%}">Principal</a></li> <li><a href="{% url 'Informacion'%}">Informacion</a></li> <li><a href="{% url 'Imagenes'%}">Imagenes</a></li> </ul> </nav> </header> </body> </html>
原理说明
Django的{% url %}标签是通过URL配置中path的name属性来反向生成URL的,只有给路径指定了唯一的name,模板才能找到对应的视图路径。另外你之前的Imagenes视图没有在URL中注册,自然也无法被解析到。
内容的提问来源于stack exchange,提问作者Gerard
相关产品推荐
相关产品推荐

