教程第 3 部分的 Django NoReverseMatch 错误
Posted
技术标签:
【中文标题】教程第 3 部分的 Django NoReverseMatch 错误【英文标题】:Django NoReverseMatch error for Tutorial Part 3 【发布时间】:2018-11-02 18:38:50 【问题描述】:您好,我一直试图弄清楚为什么我的程序中不断出现 NoReverseMatch 错误,但似乎无法弄清楚原因。我仔细检查了我的 question.id 是否正确并检查了 urls.py 以确保没有任何问题,但是当我添加 % url % 时我不断收到错误消息。我也浏览了几乎所有其他 *** 帖子,但仍然无法找出问题所在。
非常感谢任何帮助!
索引.html
% if latest_question_list %
<ul>
% for question in latest_question_list %
<li><a href="% url 'polls:detail' question_id %">
question.question_text </a></li>
% endfor %
</ul>
% else %
<p>No polls are available.</p>
% endif %
投票/urls.py
from django.conf.urls import url
from . import views
app_name = 'polls'
urlpatterns = [
url('', views.index, name='index'),
url('<int:question_id>', views.detail, name='detail'),
url('<int:question_id>/results/', views.results, name='results'),
url('<int:question_id>/vote/', views.vote, name='vote'),
url('specifics/<int:question_id>/', views.detail, name='detail'),
]
【问题讨论】:
请发布完整的错误信息。 imgur.com/eW0mcWK 您可能应该在% url ... %
标签中将question_id
替换为question.id
。
不,这并没有解决我之前实际上有 question.id 并且只是更改它以查看它是否有所作为。
嗯,错误表明question_id
不存在,或者是一个空字符串。
【参考方案1】:
不应该是question.question_id
之类的吗?
在您的锚标记中
【讨论】:
你的意思是像 'polls:detail' question.question_id 因为我很确定 id 是问题的一个属性。 @AdvaitKulkarni:是的,但你写的是question_id
(带下划线),而不是点。
@WillemVanOnsem 那么是 question_question.id 还是 question.question_id?
两者都不是。这取决于您尝试访问并传递给 url 方法的属性。如果您使用的是id
属性,那么它将是question.id
。如果您使用question_id
属性,question.question_id
。【参考方案2】:
我解决了这个问题。问题是 virtualenv 是在 Python 2.7 中设置的,而我正在编写专为 Python 3.6 设计的教程。一旦我更新了环境的 python 版本并复制了所有文件,它就可以正常工作了。
【讨论】:
以上是关于教程第 3 部分的 Django NoReverseMatch 错误的主要内容,如果未能解决你的问题,请参考以下文章
教程第 3 部分的 Django NoReverseMatch 错误