Страница не найдена по адресу /about/. Текущий путь, about/, не соответствует ни одному из этих путей. Почему django не может следовать моему пути URL?

Я уверен, что этот вопрос уже задавался много раз, но я уверен, что делаю все точно так, как написано в руководстве, и все равно ничего не получается. Я могу получить доступ к главной странице, но не к странице о сайте.

Вот скриншот ошибки:

https://i.stack.imgur.com/oFNAJ.png

У меня есть путь URL в моем файле .urls (файл ниже)

from django.urls import path
from . import views

urlpatterns = [
    path('', views.homepage, name='main-home'),
    path('about/', views.about, name='main-about'),
]

В файле .urls я сослался на файл .views (ниже)

from django.shortcuts import render
from django.http import HttpResponse


def homepage(request):
    return HttpResponse('<h1>Home</h1>')


def about(request):
    return HttpResponse('<h1>About</h1>')

Я могу упустить что-то вопиюще очевидное, но я смотрю на это уже несколько часов и все еще не могу понять, почему он не может найти страницу.

EDIT: Я ссылаюсь на файл app urls в главном посте. Если это будет полезно, вот файл .urls проекта:

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

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

Согласно скопированному изображению, вы обращаетесь к localhost:8000/about, а не к loaclhost:8000/homepage/about, который, я думаю, если бы вы посетили прямо сейчас, вернул бы ваш объект HttpResponse вида "about".

Основной сайт urls.py ссылается на 'homepage/', поэтому для всего, что имеет этот префикс, он будет искать дополнительные объекты/параметры пути в вашем приложении urls.py. Попробуйте:

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

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

Тогда prefixed ваш url с homepage как

localhost:8000/homepage/about/

Всегда лучше использовать {% url %} [Django-doc] шаблонные теги для urls внутри templates, которые будут указывать на ваш correct url даже после того, как вы измените url путь, но с тем же именем.

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