Невозможность навигации между различными html-страницами в django
Когда я пытаюсь перейти с главной страницы на любую другую страницу, все работает нормально, но при попытке перейти с другой страницы обратно на главную страницу к доменному имени добавляется home, что приводит к ошибке
это html-код
<nav>
<ul>
<li><a href="">Home</a></li>
<li><a href="./about">About</a></li>
<li><a href="./pizza">pizzas</a></li>
</ul>
это файл urls.py
from django.contrib import admin
from django.urls import path
from pizza_man import views
urlpatterns = [
path('admin/', admin.site.urls),
path('' , views.home_view , name='home' ,),
path('about/' , views.about , name ='about'),
path('pizza/' , views.show_pizza , name = 'pizza')
]
что мне нужно изменить, чтобы сделать эту тренировку
Более Django подход к построению URL в шаблонах заключается в использовании тегов шаблона для ссылки на имя, которое вы назначили своим URL, так что в этом случае вы можете использовать:
<li><a href="{% url 'home' %}">Home</a></li>
<li><a href="{% url 'about' %}">About</a></li>
<li><a href="{% url 'pizza' %}">pizzas</a></li>
Затем шаблон будет искать url по каждому из этих имен и заполнять ссылку тем, что у вас есть в файле urls.py. Таким образом, если вы решите изменить URL в вашем файле urls.py, вам не придется искать каждый экземпляр в вашем шаблоне, пока вы сохраняете то же имя в вашем файле urls.py.
Если вы посмотрите Django Docs для URL DIspatcher, вы увидите, что файл urls предназначен для централизации всех url-запросов. Это очень полезно, если вам нужно изменить структуру проекта или создать динамические url.
Поэтому лучший подход здесь - использовать обратное разрешение, что будет выглядеть следующим образом:
<ul>
<li><a href="{% url 'home' %}">Home</a></li>
<li><a href="{% url 'about' %}">About</a></li>
<li><a href="{% url 'pizza' %}">pizzas</a></li>
</ul>