0

私はdjangoのドキュメントに従っていて、簡単な投票アプリケーションを作っていました。ページが見つかりません(404)リクエスト方法:t GETリクエストURL:t http://127.0.0.1:8000/

Using the URLconf defined in mysite.urls, Django tried these URL patterns, in this order: 
    ^polls/ 
    ^admin/ 
The current URL, , didn't match any of these." 

settings.py

ROOT_URLCONF = 'mysite.urls' 

個人用サイト/個人用サイト/ urls.py

from django.conf.urls import include,url 
from django.contrib import admin 
urlpatterns = [ 
    url(r'^polls/',include('polls.urls')), 
    url(r'^admin/', admin.site.urls),] 

個人用サイト/ポーリング/ urls.py

from django.conf.urls import url 

from . import views 
app_name= 'polls' 
urlpatterns=[ 
    url(r'^$',views.IndexView.as_view(),name='index'), 
    url(r'^(?P<pk>[0-9]+)/$',views.DetailView.as_view(), name='detail'), 
    url(r'^(?P<pk>[0-9]+)/results/$',views.ResultsView.as_view(),name='results'), 
    url(r'^(?P<question_id>[0-9]+)/vote/$',views.vote,name='vote'),] 
:私は、次のようなエラーに遭遇しています

mysite/polls/views.py

from django.shortcuts import get_object_or_404,render 
from django.http import HttpResponseRedirect, HttpResponse 
from django.core.urlresolvers import reverse 
from django.views import generic 
from django.utils import timezone 
from django.template import loader 
from .models import Choice,Question 
from django.template.loader import get_template 
#def index(request): 
# return HttpResponse("Hello, world. You're at the polls index") 
class IndexView(generic.ListView): 
    template_name='polls/index.html' 
    context_object_name='latest_question_list' 
    def get_queryset(self): 
     """Return the last five published questions.""" 
     return Question.objects.filter(pub_date__lte=timezone.now()).order_by('-pub_date')[5:] 


class DetailView(generic.DetailView): 
    model=Question 
    template_name='polls/detail.html' 
    def get_queryset(self): 
     """ 
     Excludes any questions that aren't published yet. 
     """ 
     return Question.objects.filter(pub_date__lte=timezone.now()) 
class ResultsView(generic.DetailView): 
    model= Question 
    template_name ='polls/results.html' 

def vote(request, question_id): 
    question=get_object_or_404(Question, pk=question_id) 
    try: 
     selected_choice= question.choice_set.get(pk=request.POST['choice']) 
    except (KeyError, Choice.DoesNotExist): 
     return render(request, 'polls/details.html', 
      { 
      'question':question, 
      'error_message' : "You didn't select a choice" , 

      }) 
    else: 
     selected_choice.votes+=1 
     selected_choice.save() 
     return HttpResponseRedirect(reverse('polls:results', args=(question.id,))) 

index.htmlを

<!DOCTYPE HTML > 
{% load staticfiles %} 
<html> 
<body> 
<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}" /> 
{% if latest_question_list %} 
    <ul> 
    {% for question in latest_question_list %} 
     <li><a href="{% url 'polls:detail' question.id %}">{{question.question_test }} 
    </a></li> 
     {% endfor %} 
     </ul> 
    {% else %} 
     <p>No polls are available.</p> 
    {% endif %} 
</body> 
</html> 

このリンクhttp://127.0.0.1:8000/polls/は3弾と空白のページが表示されます。 (私のデータベースには3つの質問があり、そのIDは5,6,7です。質問を削除して追加しています)

私の管理者はうまくいきます!

私はDjangoを初めて使っていて、検索して尋ねていて、しばらくそれに固執しています。

+0

テンプレートを投稿したので、入力ミスがあります。 'question.question_test'ではなく' question.question_text'でなければなりません。 – Alasdair

+0

あなたの貴重な時間のために@ Alasdairさんありがとうございます。私はこのファイルにエラーがあったのかどうかわかりませんでした。 –

+0

これは、選択をした後に投票をクリックすると新しいエラーになります!例外の種類:\tはTypeError 例外値:\t /usr/local/lib/python3.4/dist-packages/django/core/handlers/base:\t 投票は()予期しないキーワード引数 'PK' 例外場所を得ました。 py get_response、line 147 –

答えて

1

http://127.0.0.1:8000/に404が表示されるのは、そのURLのURLパターンが作成されていないためです。あなたは

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

空の弾丸でポーリングのURLが含まれているので、あなたは、URL http://127.0.0.1:8000/polls/が含まれているあなたのpolls/index.htmlテンプレートに問題があることを示唆しています。タイプミスがあり、{{ question.question_text }}の代わりに{{ question.question_test }}を入れたようです。 tutorial 3のテンプレートと正確に一致していることを確認してください。

{% if latest_question_list %} 
    <ul> 
    {% for question in latest_question_list %} 
     <li><a href="/polls/{{ question.id }}/">{{ question.question_text }}</a></li> 
    {% endfor %} 
    </ul> 
{% else %} 
    <p>No polls are available.</p> 
{% endif %} 
関連する問題