как перенаправить на страницу в django

#django

#django

Вопрос:

Я создаю веб-приложение, где у меня есть разделы, такие как home, profile, а на домашней странице есть несколько сообщений, которые написаны пользователями. Но когда я перехожу к сообщениям и оттуда, если мне нужно вернуться на домашнюю страницу, появляется сообщение «страница не найдена». это приводит меня к следующей ссылке http://127.0.0.1:8000/post/4/home . но я хочу перейти на http://127.0.0.1:8000/home . Как это сделать

 <li> <a href="profile">Profile </a></li>
            <li> <a href="logout">Logout</a> </li>
            <li> <a href="password_change">Password change</a> </li>
            <li> <a href="home">home </a>
</li>
  

мой views.py домашней страницы

 def homep(request):
    context = {
        'posts':post.objects.all()
    }
    return render (request,'welcome.html',context)
  

мой urls.py

     path('',views.index,name='index'),
    path('login',views.login_view,name='login'),
    path('register',views.register,name="Login now"),
    path('logout',views.logout_view,name='logout'),
    path('profile', views.profile,name='profile'),
    path('home',PostListView.as_view(),name='home'),
    path('edit_profile',views.profile_change,name='profile_change'),
    path('post/<int:pk>/',PostDetailView.as_view(),name ='post-detail'),
  

Комментарии:

1. Вы пробовали использовать href={% url 'home' %} вместо href="home"

Ответ №1:

Это потому, что он будет каждый раз добавлять значения в конце. Вы можете предотвратить это, добавив косую черту, поэтому href="/logout" , но, вероятно, лучше использовать {% url … %} тег шаблона [Django-doc]:

 <li><a href="{% url 'profile' %}">Profile </a></li>
<li><a href="{% url 'logout' %}">Logout</a></li>
<li><a href="{% url 'password_change' %}">Password change</a></li>
<li><a href="{% url 'home' %}">home</a></li>  

Ответ №2:

Не рекомендуется жестко кодировать html-ссылки в href , вы можете использовать теги шаблона Django, например

 <a href="{% url 'home' %}">Home</a>
  

где home — это имя, указанное в urls.py файл
для получения дополнительной информации вы можете проверить здесь

куда вы также можете отправлять идентификаторы, подобные

 <a href="{% url 'post' post.id %}">Post</a>