Django LogoutView не выходит из системы, а перенаправляет на страницу входа

#python #django #django-views #django-sessions #django-login

Вопрос:

Я новичок в Джанго. У меня проблема в том, что представление входа в систему auth работает отлично, а представление выхода-нет.

Он перенаправляет только на страницу входа в систему.

  from django.contrib.auth import views as auth_views  
  
    path('user/login/', auth_views.LoginView.as_view(template_name='login.html'), name='login'),
    path('user/logout/', auth_views.LogoutView.as_view(template_name='logout.html'), name='logout'),
 

Мой logout.html файл выглядит следующим образом

 {% extends "base.html" %} {% load crispy_forms_tags %} {% load static %}
{% block content %}
<br />
<div class="container">
  <div class="row">
    <div class="col-sm-9 col-md-9 col-lg-7 mx-auto">
      <div class="card card-signin my-5">
        <div class="card-body">
          <h5 class="card-title text-center"><b>Register</b></h5>
          <form class="form-signin" method="POST">
            {% csrf_token %}
            <fieldset class="form-group">
              <br />
              {{ form|crispy }}
            </fieldset>
            <div class="form-group">
              <button
                class="btn btn-lg btn-primary btn-block text-uppercase"
                type="submit"
              >
                Sign Up</button
              ><br /><br />
            </div>
            <small
              ><p class="text-center">
                Already Registered!
                <a href="{% url 'login' %}"><b>Login Now!</b></a>
              </p></small
            >
          </form>
        </div>
      </div>
    </div>
  </div>
</div>
{% endblock content %}
 

Пожалуйста, кто-нибудь знает, почему это может произойти. Возможно ли, что представление входа в систему по умолчанию может работать, а представление выхода из системы по умолчанию не работает. Или я делаю что-то не так?.

Спасибо вам за ваши ответы.

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

1. Почему вы уверены, что это просто перенаправление на страницу входа в систему, а не выход пользователя из системы и перенаправление на страницу входа в систему?

2. Спасибо вам за ваш ответ. Это потому, что у меня все еще есть доступ ко всем страницам с @login_required. Страница профиля все еще активна, и выход из системы по-прежнему отображается на моей навигационной панели

3. На самом деле мне интересно, почему вы используете форму входа в шаблон выхода из системы?!

4. Спасибо @SerioUs. на самом деле в этом и заключалась причина моей проблемы. Шаблоны входа и выхода были одинаковыми. У меня также был шаблон входа в систему в href моей кнопки выхода из системы , поэтому, когда я нажимаю «Выход», он просто загружает страницу входа без отправки запроса на выход. Теперь я изменил шаблон, и теперь он работает. Спасибо вам 🙂 .

Ответ №1:

отправьте свои html-данные о выходе из системы. вы делаете это правильно, но, возможно, вы не даете инструкций для своего представления выхода из системы.

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

1. Спасибо за ваш ответ — я только что отредактировал свой первоначальный вопрос, чтобы включить Html-файл