0
你好我在django网站上关注this tutorial。我想我现在已经复制了所有东西。但得到一个错误"NoReverseMatch at /polls/2/vote/"
和"Reverse for 'views.results' with arguments '(2,)' and keyword arguments '{}' not found."
我看了几个关于这个问题的其他文章,但我没有发现他们帮助完整。即添加name='views'
或类似的东西。颠倒'views.results'参数'(1,)'和关键字参数'{}'找不到
我urls.py
from django.conf.urls.defaults import patterns, include, url
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('mysite.polls.views',
url(r'^$', 'index'),
url(r'^polls/$', 'index'),
url(r'^polls/(?P<poll_id>\d+)/$', 'detail'),
url(r'^polls/(?P<poll_id>\d+)/results/$', 'results', name='polls.views.results'),
url(r'^polls/(?P<poll_id>\d+)/vote/$', 'vote'),
url(r'^admin/', include(admin.site.urls)),
)
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
我views.py
from django.shortcuts import get_object_or_404, render_to_response from django.http import HttpResponseRedirect, HttpResponse from django.core.urlresolvers import reverse from django.template import RequestContext from models import Choice, Poll
def index(request):
latest_poll_list = Poll.objects.all().order_by('-pub_date')[:5]
return render_to_response('indexx.html', {'latest_poll_list': latest_poll_list},) def detail(request, poll_id):
try:
p = Poll.objects.get(pk=poll_id)
except Poll.DoesNotExist:
raise Http404
return render_to_response('detail.html', {'poll': p}, context_instance=RequestContext(request))
def results(request, poll_id):
p = get_object_or_404(Poll, pk=poll_id)
return render_to_response('results.html', {'poll': p})
def vote(request, poll_id):
p = get_object_or_404(Poll, pk=poll_id)
try:
selected_choice = p.choice_set.get(pk=request.POST['choice'])
except (KeyError, Choice.DoesNotExist):
# Redisplay the poll voting form.
return render_to_response('detail.html', {
'poll': p,
'error_message': "You didn't select a choice.",
}, context_instance=RequestContext(request))
else:
selected_choice.votes += 1
selected_choice.save()
# Always return an HttpResponseRedirect after successfully dealing
# with POST data. This prevents data from being posted twice if a
# user hits the Back button.
return HttpResponseRedirect(reverse('views.results', args=[p.id]))
URL的名称为'polls.views.results'不'views.results' –
大坝你是正确的,解决它。即时通讯在pythonanywhere.com上做,而且在粘贴示例代码时,我不得不在很多地方使用'polls.'。 thnks,我的事件认为实际上尝试添加民意调查。 befor但是然后我去了另一个错误。但无论如何thx –
欢迎。我已经发布它作为答案。 –