2013-04-17 7 views
6

私はdjangoチュートリアルをやろうとしています。私は、次しまったのチュートリアル04日午前:ページ詳細でのPython 2.7(64ビット)Djangoチュートリアル04 NoReverseMatch at/polls/1/- u'pollsは登録された名前空間ではありません

  • ジャンゴ1.5.1(64ビット)

、それは言います:

NoReverseMatch at /polls/1/ 

それは言う:u'pollsは登録の名前空間ではありません。

世論調査/ views.py

from django.http import HttpResponse, Http404, HttpResponseRedirect 
from django.shortcuts import render, get_object_or_404 
from django.template import Context, loader 
from django.core.urlresolvers import reverse 
from polls.models import Poll 


def index(request): 
    latest_poll_list = Poll.objects.order_by('-pub_date')[:5] 
    template = loader.get_template('polls/index.html') 
    context = Context({ 
     'latest_poll_list': latest_poll_list, 
    }) 
    return HttpResponse(template.render(context)) 


def detail(request, poll_id): 
    try: 
     poll = Poll.objects.get(pk=poll_id) 
    except Poll.DoesNotExist: 
     raise Http404 
    #return HttpResponseRedirect(reverse('poll_results', kwargs={'object_id': p.id}))  
    return render(request,'polls/detail.html',{'poll':poll}) 
''' 
    poll = get_object_or_404(Poll, pk=poll_id) 
    return render(request, 'polls/detail.html', {'poll': poll}) 
''' 

def results(request, poll_id): 
    poll = get_object_or_404(Poll, pk=poll_id) 
    return render(request, 'polls/results', {'poll': poll}) 


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(request, 'polls/detail.html', { 
      'poll': p, 
      'error_message': "You didn't select a choice.", 
     }) 
    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('polls:results', args=(p.id,))) 

世論調査/ urls.py:

from django.conf.urls import patterns, url 
from django.views.generic import DetailView, ListView 
from polls.models import Poll 

urlpatterns = patterns('', 
    url(r'^$', 
     ListView.as_view(
      queryset=Poll.objects.order_by('-pub_date')[:5], 
      context_object_name='latest_poll_list', 
      template_name='polls/index.html'), 
     name='index'), 
    url(r'^(?P<pk>\d+)/$', 
     DetailView.as_view(
      model=Poll, 
      template_name='polls/detail.html'), 
     name='detail'), 
    url(r'^(?P<pk>\d+)/results/$', 
     DetailView.as_view(
      model=Poll, 
      template_name='polls/results.html'), 
     name='results'), 
    url(r'^(?P<poll_id>\d+)/vote/$', 'polls.views.vote', name='vote'), 
) 

世論調査/テンプレート/ポーリング/ detail.html

{% load url from future %} 
<h1>{{ poll.question }}</h1> 

{% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %} 

<form action="{% url 'polls:detail' poll.id %}" method="post"> <!-- --> 
    {% csrf_token %} 
{% for choice in poll.choice_set.all %} 
    <input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}" /> 
    <label for="choice{{ forloop.counter }}">{{ choice.choice_text }}</label><br /> 
{% endfor %} 
<input type="submit" value="Vote" /> 
</form> 

答えて

20

は気にしません。私は一歩足りなかった。

url(r'^polls/', include('polls.urls')), 

::私はちょうどからのラインを変更しサイト/ urls.py

url(r'^polls/', include('polls.urls', namespace="polls")), 

、それは今で言う:

urlpatterns = patterns('', 
    # Examples: 
    # url(r'^$', 'hello.views.home', name='home'), 
    # url(r'^hello/', include('hello.foo.urls')), 

    # Uncomment the admin/doc line below to enable admin documentation: 
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), 

    # Uncomment the next line to enable the admin: 
    url(r'^polls/', include('polls.urls', namespace="polls")), 
    url(r'^admin/', include(admin.site.urls)), 
) 

そして今、それが動作します。

+0

私にとっても... –

関連する問題