Это должно быть так:
path('', include('polls.urls')),
не так:
path('polls/', include('polls.urls'))
Потому что это должен быть корневой URL вашего сайта
Я пытаюсь научиться Django и попробовать пошаговое руководство по адресу https://docs.djangoproject.com/en/2.0/intro/tutorial03/ .
Я завершил приложение (ну, до части 7) и работает как ожидалось (и объяснено в учебнике).
Единственная проблема, с которой я столкнулась, - это когда я пытаюсь перейти с страницы «Админ» на связанную страницу «ПРОСМОТРЕТЬ САЙТ», когда мне представляется ошибка «Страница не найдена (404)». Прикрепляется изображение, чтобы сделать ситуацию более ясной.
Ссылка указывает на « http://127.0.0.1:8000/ », тогда как она должна указывать на « http://127.0.0.1:8000/polls/ ». Когда я добавляю недостающую часть пути (вручную) в адресной строке, отображается правильная страница (как и ожидалось).
Я попытался найти это, как и многие другие форумы, но не смог найти правильное решение.
Я использую Django 2.0.6 и Python 3.6.4 на mac sierra.
Будем благодарны за это.
благодаря
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),
]
MySite / опросы / 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'),
]
опросы / шаблон / опросы / index.html
{% load static %}
<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_text }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>No polls are available.</p>
{% endif %}
Ошибка при навигации на VIEW SITE
Вот что я сделал (может быть, не самое изящное решение, но отлично работает).
Я изменил файл mysite / urls.py, как показано:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('', include('polls.urls')),
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
Таким образом, я могу получить доступ к странице «опросы» из ссылки «View Site» на странице администратора Django (url: «127.0.0.1:8000»), а также из ссылки, расположенной в другом месте (url: «127.0.0.1: 8000 / опросы / ").
Спасибо за помощь.
PS. Посещение https://docs.djangoproject.com/en/2.0/topics/http/urls/ может помочь учащимся, таким как я.