URL-адрес Джанго дает страницу не найдена (404) ошибка - PullRequest
0 голосов
/ 10 июля 2019

Я получаю страницу не найдена (404) ошибка для приложения голосования, которое я создал из учебника datacamp. Я проверил свой код, чтобы убедиться, что в нем нет ошибок. Администратор работает нормально, но другие URL-адреса нет.

Вот код urls.py из основного каталога приложения:

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

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

Вот urls.py из каталога приложения голосования:

from django.urls import path
from . import views

urlpatterns = [
        path('',views.index, name='index'),
        path('<int:question_id>/',views.detail, name='detail'),
        path('<int:question_id>/results/', views.results, name='results'),
        path('<int:question_id>/vote/', views.vote, name='vote'),
]

Я использую django 2.0.5.

Спасибо

1 Ответ

0 голосов
/ 12 июля 2019

Если вы не сделали ошибку, скопировав неправильное приложение urls.py для голосования, проблема должна быть в этом.

Это основной urls.py вашего проекта:

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

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

К вашему сведению, в соответствии с документами include() добавляет URL-адреса из каталога вашего приложения (в вашем случае это голосование) urls.py в основной urls.py (в памяти). Это удерживает основной urls.py от слишком большого для чтения.

И это urls.py вашего приложения голосования , которое буквально является копией main urls.py :

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

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

Вы не видите здесь никаких проблем? Там нет конечной точки. Где находится связанный вид (на основе функций или классов) для этого URL?

Я предлагаю написать представление в вашем views.py и проверить его:

Приложение Votings views.py:

from django.http import HttpResponse
import datetime

def current_datetime(request):
    now = datetime.datetime.now()
    html = "<html><body>It is now %s.</body></html>" % now
    return HttpResponse(html)

Голосование приложение urls.py:

from django.urls import include, path
from . import views

urlpatterns = [
    path('home/', views.current_datetime, name='home'),
]
...