相关疑难解决方法(0)

什么是NoReverseMatch错误,我该如何解决?

我有一些代码,当它执行时,它抛出一个NoReverseMatch,说:

NoReverseMatch at/my_url/Reverse for'my_url_name',参数'()'和关键字参数'{}'未找到.n模式尝试:[]

这是什么意思,我能做些什么呢?

django django-urls

98
推荐指数
1
解决办法
8万
查看次数

Django:使用参数'('',)'和关键字参数'{}'找不到"详细信息"

我正在按照官方教程学习Django并使用1.5.

我有这个链接作为我的索引模板的一部分,这是正常工作:

<li><a href="/polls/{{ poll.id }}/">{{ poll.question }}</a></li>
Run Code Online (Sandbox Code Playgroud)

但是,这是硬编码的,教程建议更好的方法是使用:

<li><a href="{% url 'detail' poll.id %}">{{ poll.question }}</a></li>
Run Code Online (Sandbox Code Playgroud)

这样你在处理大量模板时会更好,你必须对网址进行更改.

由于我进行了上述更改,因此在运行应用时出现以下错误:

Exception Type: NoReverseMatch
Exception Value:    Reverse for 'detail' with arguments '('',)' and keyword arguments '{}' not found.
Run Code Online (Sandbox Code Playgroud)

我的urls.py看起来像这样:

from django.conf.urls import patterns, url

from polls import views

urlpatterns = patterns('',
    url(r'^$', views.index, name='index'),
    url(r'^(?P<poll_id>\d+)/$', views.detail, name='detail'),
    url(r'^(?P<poll_id>\d+)/results/$', views.results, name='results'),
   url(r'^(?P<poll_id>\d+)/vote/$', views.vote, name='vote'),                     
)
Run Code Online (Sandbox Code Playgroud)

views.py看起来像这样:

from django.shortcuts import render, get_object_or_404
from django.http import Http404

from polls.models import Poll

def index(request):
    latest_poll_list = …
Run Code Online (Sandbox Code Playgroud)

python django django-templates django-views

15
推荐指数
2
解决办法
6万
查看次数