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