2013-01-20 7 views
0

django 사이트에서 this tutorial을 다음과 같이 사용하고 있습니다. 나는 모든 것을 붙여 넣은 사본을 가지고 있다고 생각합니다. 하지만 오류가 발생 "NoReverseMatch at /polls/2/vote/" 그리고 "Reverse for 'views.results' with arguments '(2,)' and keyword arguments '{}' not found." 나는이 주제에 대한 다른 게시물을 거의 보지 못했지만 전체 도움말을 찾지 못했습니다. 즉 name='views' 또는 비슷한 것을 추가하십시오.인수가 '(1,)'이고 키워드 인수가 '{}'인 'views.results'에 대해 역순으로 처리합니다.

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])) 
+1

이름 polls.views.results'이 아닌'당신이 그것을 해결 그 권리입니다 –

+0

댐 views.results''이다. 나는 pythonanywhere.com에서 그것을하고 있고 예제 코드를 붙여 넣을 때 나는 많은 곳에서'polls.'을 가져 가야했다. thnks, 나는 실제로 투표를 추가하려고 생각했다. befor하지만 다른 오류가 간다. 하지만 어쨌든 thx –

+0

환영합니다. 대답으로 게시했습니다. –

답변

1

URL의 이름은 polls.views.results하지 views.results입니다. 그것은해야한다 : 홈페이지의

return HttpResponseRedirect(reverse('polls.views.results', args=[p.id])) 
관련 문제