Seite nicht gefunden (404) - Request-Methode: GET-Request-URL: http://127.0.0.1:8000/
War ich nach der django-Dokumentation und das anfertigen einer einfachen Umfrage-app. Ich habe den folgenden Fehler :
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'
mysite/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),]
mysite/polls/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>
Diesen link http://127.0.0.1:8000/polls/ zeigt eine leere Seite mit 3 Kugeln. (Ich habe 3 Fragen in meiner Datenbank und Ihre id ' s sind 5,6,7, denn ich habe das löschen und das hinzufügen der Fragen).
Mein admin funktioniert!
Ich bin neu in Django und haben gesucht und gefragt, rund und fest gewesen auf es für eine Weile jetzt.
- Nun, dass du gepostet hast, dein template kann ich sehen, dass Sie haben einen Tippfehler. Es sollte
question.question_text
, nichtquestion.question_test
. - Ich danke Ihnen, sir @Alasdair für Ihre wertvolle Zeit. Ich wusste nicht, dass der Fehler in dieser Datei..
- Dies ist te neue Fehlermeldung, die ich bekomme, wenn ich auf Stimmen nach der Wahl eine Wahl! Der Ausnahme-Typ: TypeError-Ausnahme-Wert: vote() got an unexpected keyword argument 'pk' Ausnahme-Speicherort: /usr/local/lib/python3.4/dist-packages/django/core/handlers/base.py in get_response, line 147
- Das ist ein anderes Thema, sollten Sie eine neue Frage stellen, anstatt die Bearbeitung dieser.
- ok sir, danke 🙂 @Alasdair
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du den 404 auf
http://127.0.0.1:8000/
weil Sie nicht erstellt haben jedes URL-Muster für die url. Sie enthalten die urlhttp://127.0.0.1:8000/polls/
, weil Sie die Umfragen urls mitDen leeren Kugeln suggerieren, dass es ein problem mit Ihrem
polls/index.html
Vorlage. Es sieht aus wie Sie haben ein Tippfehler und haben{{ question.question_test }}
statt{{ question.question_text }}
. Stellen Sie sicher, dass es exakt der Vorlage aus dem tutorial 3: