Как перейти с одной страницы на другую в django?

Я новичок в программировании на python и создал проект для обучения. Я создал три html страницы, когда я нажимаю на ссылку другой страницы, то появляется ошибка page not found потому что url показывает ссылку предыдущей страницы со ссылкой текущей страницы (я не знаю, как объяснить мою проблему)

Пример

У меня есть две страницы индекса, домашняя

если я нахожусь на индексной странице (url для индексной страницы - "http://127.0.0.1:8000/index/" ) и хочу перейти на главную страницу, когда я нажимаю на ссылку главной страницы, она показывает ошибку, потому что url для страницы ошибки - "http://127.0.0.1:8000/index/home/" , а я хочу, чтобы url главной страницы был таким "http://127.0.0.1:8000/home/" . То же самое происходит, когда я хочу перейти с главной страницы на индексную, но когда я пишу вручную, страница открывается правильно

Мой код

код ссылок для index.html и home.html

<a class="collapse-item" href="home">Home Page</a>
<a class="collapse-item" href="index">Index Page</a>

view.py

from django.shortcuts import render
from django.http import HttpResponse

def index_view(request):
    return render(request, "index.html")

def home_view(request):
    return render(request, "home.html")

app/urls.py

from django.urls import path

from . import views

urlpatterns= [
    path('index/', views.index_view),
    path('home/', views.home_view),

project/urls.py

from django.contrib import admin
from django.urls import path, include

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

Из django-doc, вы можете использовать url тег django, для использования тегов url вы должны указать имя в path функции в urls.py файле.

Попробуйте это:

app/urls.py

from django.urls import path

from . import views

urlpatterns= [
    path('index/', views.index_view,name='index'),
    path('home/', views.home_view,name='home')
]

В вашем файле template вы можете использовать следующий способ:

<a class="collapse-item" href="{% url 'home' %}">Home Page</a>
<a class="collapse-item" href="{% url 'index' %}">Index Page</a>
Представления на основе функций

Note:, как вы определили index_view и home_view, не требуют суффикса view. Только представления, основанные на классах, требуют суффикс view. Поэтому будет лучше, если вы будете использовать index и home.

Вам необходимо внести изменения в атрибуты 'app/urls.py' и 'href'. В django каждый URL должен быть доступен с именем.

enter image description here

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