2017-02-04 2 views
2

Ich arbeite durch die Polls tutorial for Django. Ich habe es bis zum Beginn des sechsten Teils geschafft.Umfragen Anwendung - django Tutorial funktioniert nicht

Aus irgendeinem Grund arbeiten alle meine Klassen-basierte generische Ansichten EXCEPT die klassenbasierte Indexansicht. Beim Versuch, localhost zu laden: 8000/bekomme ich folgende Fehlermeldung:

Page not found (404) 
Request Method: GET 
Request URL: http://localhost: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. 

Hier ist meine mysite/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), 
] 

Und hier ist meine Umfragen/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'), 
] 

Und hier ist die Umfragen/views.py. Ich füge gerade den IndexView-Bereich ein. Der Rest der klassenbasierten Ansichten funktioniert zur Zeit:

from django.shortcuts import get_object_or_404, render 
from django.http import HttpResponseRedirect 
from django.urls import reverse 
from django.views import generic 
from django.utils import timezone 

from .models import Choice, Question 

# Create your views here. 
class IndexView(generic.ListView): 
    template_name = 'polls/index.html' 
    context_object_name = 'latest_question_list' 

    def get_queryset(self): 
     # Return last five published questions (not inc. future) 
     return Question.objects.filter(
     pub_date__lte=timezone.now() 
     ).order_by('-pub_date')[:5] 

Fehle ich etwas? Jede Hilfe würde sehr geschätzt werden.

Antwort

4

Ihr Index URL-Muster ist in polls/urls.py, die Sie unter r'^polls/' enthalten, so sollten Sie es auf Zugang:

http://localhost:8000/polls/ 

404 Erste für http://localhost:8000/ ist das erwartete Verhalten, weil Ihr Haupt urls.py enthält nur Urls bei admin/ und polls/. Sie müssten ein URL-Muster mit Regex r'^$' zu main/urls.py hinzufügen, um den 404 zu stoppen.

+0

Danke! Als zusätzlichen Bonus lehrte mich deine Antwort, wie man über 'Index' denkt, da es sich auf Mysite vs. innerhalb der Umfragen-App bezieht. Sehr geschätzt. – Dan

Verwandte Themen