Страница не найдена, когда я выхожу из системы, есть идеи, почему выход из системы не работает?
Работаю над социальным приложением с django и нажатие на log out больше не работает по какой-то причине я получаю: Страница не найдена (404)
Не найдено ни одного профиля, соответствующего запросу Метод запроса: GET URL запроса: http://127.0.0.1:8000/logout. Поднято: network.views.<class 'network.views.ProfileDetailView'>
Используя URLconf, определенный в project4.urls, Django попробовал эти шаблоны URL, в таком порядке: admin/ [name='all-profiles-view'] [name='profile-view']. Текущий путь, logout, совпал с последним.
Также есть ли простой способ сделать имя пользователя кликабельным на любой странице, направленной на его профиль (ProfileDetailView)? URLs:
from django.urls import path
from django.conf import settings
from django.conf.urls.static import static
from . import views
from .views import (
posts_of_following_profiles,
like_unlike_post,
invites_received_view,
invite_profiles_list_view,
send_invitation,
remove_friends,
accept_invitation,
reject_invitation,
ProfileDetailView,
PostDeleteView,
PostUpdateView,
ProfileListView,
)
urlpatterns = [
path("", ProfileListView.as_view(), name="all-profiles-view"),
path("<slug>", ProfileDetailView.as_view(), name="profile-view"),
path("posts/", views.post_comment_create_view, name="posts"),
path("posts-follow/", posts_of_following_profiles, name="posts-follow"),
path("login", views.login_view, name="login"),
path("logout", views.logout_view, name="logout"),
path("register", views.register, name="register"),
path("liked/", like_unlike_post, name="like-post-view"),
path("<pk>/delete", PostDeleteView.as_view(), name="post-delete"),
path("<pk>/update", PostUpdateView.as_view(), name="post-update"),
path("invites/", invites_received_view, name="invites-view"),
path("send-invite/", send_invitation, name="send-invite"),
path("remove-friend/", remove_friends, name="remove-friend"),
path("invites/accept/", accept_invitation, name="accept-invite"),
path("invites/reject/", reject_invitation, name="reject-invite"),
path("to-invite/", invite_profiles_list_view, name='invite-profiles-view')
]
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Просмотров:
Разметка:
Посмотрите на свою urlpatterns. У вас есть profile-view перед logout.
path("<slug>", ProfileDetailView.as_view(), name="profile-view")
.
.
.
path("logout", views.logout_view, name="logout")
И когда ваш урл logout совпадает с slug и ваш ProfileDetailView вызывается, поскольку ваш ProfileDetailView оценивается перед logout_view. Поэтому измените порядок ваших урлов, потому что каждый value после http://127.0.0.1:8000/ соответствует этому шаблону и будет вызван. Поэтому измените порядок ваших urls.py и проверьте.
Так что, если посмотреть на urls.py, это не повлияет на размещение этого ProfileDetailView внизу urls.
Для второй части, нажав на username вызовите ProfileDetailView измените в вашем html как
<li class="nav-item">
<a class="nav-link" href="{% url 'profile-view' user.username %}"><strong>{{ user.username }}</strong>.
</a>
</li>