Создание моего первого приложения Django

Я пытаюсь научиться 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

python,django,

0

Ответов: 3


0 принят

Это должно быть так:

path('', include('polls.urls')),

не так:

path('polls/', include('polls.urls'))

Потому что это должен быть корневой URL вашего сайта


0

вы должны открыть http://127.0.0.1:8000/polls/

не

http://127.0.0.1:8000/ .

Если вы хотите использовать http://127.0.0.1:8000/, то ваш путь должен быть

from django.urls import include, path

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

0

Вот что я сделал (может быть, не самое изящное решение, но отлично работает).

Я изменил файл 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/ может помочь учащимся, таким как я.

питон, Джанго,
Похожие вопросы
Яндекс.Метрика