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 ファイルの参照を変更する必要がありますか? すべての提案に感謝します。