DJango - NoReverseMatch 错误
DJango - NoReverseMatch Error
也就是异常值:
反转 '' 与参数 '()' 和关键字参数 '{'id': 1}' 未找到。尝试了 0 种模式:[]
index.html
<p>Estudiante: <a href="{% url 'polls.views.student_detail' id=student.id %}">{{student.stduent_name}}</a></p>
link 应该去这样的路由“127.0.0.1:8000/polls/1/”。该路线在 link.
之外运行良好
views.py
def student_detail(request, id):
student = get_object_or_404(Student, id=id)
return render(request, 'polls/student_detail.html', {'student': student})
urls.py
urlpatterns = [
url(r'^$', views.index),
url(r'^polls/(?P<id>[0-9]+)/', views.student_detail),
]
图片:
Error details
Route tree
url
模板标签的第一个参数是 "url name"。定义路由的时候需要指定名称,比如:
url(r'^polls/(?P<id>[0-9]+)/', views.student_detail, name='student-detail'),
然后更新您的模板以像这样使用它:
{% url 'student-detail' id=student.id %}
请参阅 url 模板上的 the documentation 和 url 名称。
异常中的模板代码与您在问题中粘贴的模板代码不同。异常表明您的模板标签如下所示:
{% url polls.views.student_detail id=student.id %}
注意与异常一致的遗漏引号。如果没有引号,django 会尝试将 polls.views.student_detail 解析为变量,而不是将其作为字符串传递给模板标签。由于它无法解析您正在将空白字符串传递给您的模板标签。
您正在按名称调用 url,但 urls.py 文件中没有这样的名称 url。
你的url模式应该是:
urlpatterns = [
url(r'^$', views.index),
url(r'^polls/(?P<id>[0-9]+)/', views.student_detail, name='student_detail'),
]
然后在您的模板中:
<p>Estudiante: <a href="{% url 'student_detail' student.id %}">{{student.stduent_name}}</a></p>
请注意,您不需要显式传递参数名称,Django 会在 url 正则表达式模式中指定的相应参数中转换由 space 分隔的每个参数。
也就是异常值: 反转 '' 与参数 '()' 和关键字参数 '{'id': 1}' 未找到。尝试了 0 种模式:[]
index.html
<p>Estudiante: <a href="{% url 'polls.views.student_detail' id=student.id %}">{{student.stduent_name}}</a></p>
link 应该去这样的路由“127.0.0.1:8000/polls/1/”。该路线在 link.
之外运行良好views.py
def student_detail(request, id):
student = get_object_or_404(Student, id=id)
return render(request, 'polls/student_detail.html', {'student': student})
urls.py
urlpatterns = [
url(r'^$', views.index),
url(r'^polls/(?P<id>[0-9]+)/', views.student_detail),
]
图片:
Error details
Route tree
url
模板标签的第一个参数是 "url name"。定义路由的时候需要指定名称,比如:
url(r'^polls/(?P<id>[0-9]+)/', views.student_detail, name='student-detail'),
然后更新您的模板以像这样使用它:
{% url 'student-detail' id=student.id %}
请参阅 url 模板上的 the documentation 和 url 名称。
异常中的模板代码与您在问题中粘贴的模板代码不同。异常表明您的模板标签如下所示:
{% url polls.views.student_detail id=student.id %}
注意与异常一致的遗漏引号。如果没有引号,django 会尝试将 polls.views.student_detail 解析为变量,而不是将其作为字符串传递给模板标签。由于它无法解析您正在将空白字符串传递给您的模板标签。
您正在按名称调用 url,但 urls.py 文件中没有这样的名称 url。
你的url模式应该是:
urlpatterns = [
url(r'^$', views.index),
url(r'^polls/(?P<id>[0-9]+)/', views.student_detail, name='student_detail'),
]
然后在您的模板中:
<p>Estudiante: <a href="{% url 'student_detail' student.id %}">{{student.stduent_name}}</a></p>
请注意,您不需要显式传递参数名称,Django 会在 url 正则表达式模式中指定的相应参数中转换由 space 分隔的每个参数。