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

Я хочу добавить 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')

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

Вы определили два пути с пустой строкой. Они вызывают соответственно articles и contact. Поскольку articles указан первым, при посещении "домашней страницы" сработает представление articles.

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

Вы не можете указать 2 пути для двух представлений, поэтому вам нужно изменить ваш url путь, вы можете сделать что-то вроде ниже, если у вас есть и представление статьи и представление контакта на articles app's views.py file.

уровень проекта 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/ для просмотра контактов.

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