Запрос Django не доходит до страницы

#django #django-views #django-urls

Вопрос:

Я хочу добавить html-страницу контакта в свой существующий проект. Я поместил html-страницу в шаблон, где уже находится домашняя страница. Теперь я добавил URL-адрес для контакта в каталог уровня проекта, который направляет запрос на URL-адрес уровня приложения. Этот уровень приложения имеет функцию контакта в представлениях. У меня также есть URL-адрес на уровне приложения, но ссылка на контакт не отвечает. В отладке он показывает состояние 200 ok. Может ли кто-нибудь указать мне, что я делаю не так??? Это URL-файл уровня проекта

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

это URL-файл уровня приложения

 urlpatterns = [
    path('', views.articles, name='articles'),
    path('', views.contact, name='contact'),
]
 

это функция просмотра, в которой одна функция возвращает страницу статьи, а другая не отвечает

 def articles(request):
    return render(request, 'articles/home.html')

def contact(request):
    return render(request, 'articles/contact.html')

 

Комментарии:

1. Вы сделали два пути с одним и тем же шаблоном, поэтому , если вы посетите / , это вызовет articles представление, а не contact представление.

Ответ №1:

В отладке он показывает состояние 200 ok. Может ли кто-нибудь указать мне, что я делаю не так?

Вы определили два пути с пустой строкой. Они стреляют articles и contact соответственно. Так articles как указано первым, если вы зайдете на «домашнюю страницу», она запустит articles просмотр.

Каждый HTTP-запрос запускает только одно представление, и это представление выдает HTTP-ответ. Если вы таким образом хотите добавить что-то, чтобы связаться с кем-то, вам следует изменить articles представление или поработать с другим путем, который вызовет contact представление.

Ответ №2:

Вы не можете указать 2 пути для 2 представлений, поэтому вам нужно изменить путь к URL-адресу, вы можете сделать что-то вроде приведенного ниже, если у вас есть как статья, так и представление контактов в articles файле приложения views.py .

уровень проекта urls.py

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

уровень приложения urls.py

 urlpatterns = [
    path('article/', views.articles, name='articles'),
    path('contact/', views.contact, name='contact'),
]
 

Теперь вы можете использовать 127.0.0.1:800/article/ для просмотра статей и 127.0.0.1:800/contact/ для просмотра контактов.