1

Windows 7、64 ビット
Python 2.7.3
Django 1.5
python manage.py runserver

「 https://docs.djangoproject.com/en/1.5/intro/tutorial04/」 で利用可能なチュートリアルに従っています

一般的なビュー コードを「polls/urls.py」に適用するまで、すべてが正常に機能していました。現在、Web ブラウザー ウィンドウに次のエラーが表示されます。

@ index.py

@detail.py

質問と回答を読みました @' Django 公式チュートリアル 絶対初心者向け、絶対失敗しました!' そして今、さらに混乱しています。これは、チュートリアル ドキュメントのセクションを参照し、次のことを示唆しています。

「テンプレートを調べて、latest_poll_list への参照を object_list に変更し、poll への参照を object に変更します。」

ただし、私が使用しているチュートリアル ドキュメントのバージョンでは、次のように設定することでこれを簡単に回避できることが示唆されているようです。

context_object_name='latest_poll_list'  

私の polls/urls.py は現在次のようになっています。

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

urlpatterns=patterns(' ',  
# ex: /polls/  
  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'),  
# ex: /polls/5/  
  url(r'^(?P<pk>\d+)/$',  
    DetailView.as_view(  
      model=Poll,  
      template_name='polls/detail.html'),  
    name='detail'),  
# ex:/polls/5/results/  
  url(r'^(?P<pk>\d+)/results/$',  
    DetailView.as_view(  
      model=Poll,  
      template_name='polls/results.html'),  
    name='results'),  
# ex: /polls/5/vote/  
  url(r'^(?P<poll_id>\d+)/vote/$','polls.views.vote',name='vote'),  
)  

私の polls/views.py は次のようになります。

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

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):  
    return render(request, 'polls/detail.html',{  
      'poll':p,  
      'error_message': "You didn't select a choice.",  
    })  
  else:  
    selected_choice.votes+=1  
    selected_choice.save()  
    return HttpResponseRedirect(reverse('polls:results',args=(p.id,)))  

見落としているのはタイプミスですか、それとも HTML ファイルの参照を変更する必要がありますか? すべての提案に感謝します。

4

1 に答える 1

0

ルートurls.pyに名前空間を追加しましたか?

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

編集: パターン呼び出しのスペース引数を空の文字列に変更してみてください:

urlpatterns=patterns(' ',

urlpatterns=patterns('',
于 2013-03-21T21:46:44.960 に答える