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, nicht question.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
Schreibe einen Kommentar