Django 4.1 polls tutorial, все сделано Admin работает нормально, но индекс не найден

ok polls tutorial is done and can enter questions, vote, etc. but from the admin pages View site aka localhost:8000 gives...

    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:

dose/
admin/
The empty path didn’t match any of these.

Теперь у меня есть polls/views.py...

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

from .models import Choice, Question


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 (not including those set to be
        published in the future).
        """
        return Question.objects.filter(
            pub_date__lte=timezone.now()
        ).order_by('-pub_date')[:5]

и mysite/urls.py, установленный в ...

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

и polls/urls.py установлен на...

from django.urls import path

from . import views


app_name = 'polls'
urlpatterns = [
    path('', views.IndexView.as_view(), name='index'),
    path('<int:pk>/', views.DetailView.as_view(), name='detail'),
    path('<int:pk>/results/', views.ResultsView.as_view(), name='results'),
    path('<int:question_id>/vote/', views.vote, name='vote'),
]

Единственная подсказка, которую я могу найти, это то, что все импорты показывают подсветку ошибок в VSCode с ошибкой "reportMissingModuleSources"

Но python и django прекрасно работают везде, кроме index.html

Нет url по адресу http://localhost:8000/ - это ожидаемое поведение, куда вы хотите перейти - это http://localhost:8000/polls/.

Если вы хотите перейти непосредственно к нужному виду без написания префикса polls/, вы должны определить ваши урлы таким образом:

urlpatterns = [
    path('', include('polls.urls')),
    path('admin/', admin.site.urls),
]

Так вы размещаете path() вызов без префикса url. Обычно, если вы include какую-либо группу url, вы определяете начало адреса таким образом.

Вернуться на верх