Как перейти с одной страницы на другую в 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 должен быть доступен с именем.
