Проблема с ERR_TOO_MANY_REDIRECTS django 2.1 - PullRequest
0 голосов
/ 12 декабря 2018

Я начал создавать модуль входа в систему в django.Модуль логина в порядке, но у меня проблема с выходом из системы.Когда я нажимаю «Выйти» - мы видим «error -ERR_TOO_MANY_REDIRECTS»

Возможно, что-то в этом файле неверно: account / urls.py

from django.conf.urls import url
from django.urls import path
from django.contrib.auth import views as auth_views
from . import views

app_name = 'account'

urlpatterns = [
    path('', auth_views.LoginView.as_view(template_name='account/login.html'), name='login'),
    path('logout/', auth_views.LogoutView.as_view(template_name='registration/logout.html'), name='logout'),
    path('logout-then-login/', auth_views.logout_then_login, name='logout_then_login'),
    path('dashboard/', views.dashboard, name='dashboard'),

base.html

<body>
  <div id="header">
  {% if request.user.is_authenticated %}
    <ul class="menu">
      <li {% if section == "dashboard" %} class="selected"{% endif %}>
        <a href="{% url "account:dashboard" %}">Panel główny</a>
      </li>
      <li {% if section == "images" %} class="selected"{% endif %}>
        <a href="#">Obrazy</a>
      </li>
      <li {% if section == "people" %} class="selected"{% endif %}>
        <a href="#">Ludzie</a>
      </li>
    </ul>
  {% endif %}

    <span class="user">
        {% if request.user.is_authenticated %}
            Witaj, {{ request.user.first_name }}
            <a href="{% url "account:logout" %}">Wyloguj</a>
        {% else %}
            <a href="{% url "account:login" %}">Zaloguj</a>
        {% endif %}
    </span>
    </div>
    <div id="content">
        {% block content %}
        {% endblock %}
    </div>
</body>

logout.html

{% extends "base.html" %}

{% block title %} Wylogowanie {% endblock %}

{% block content %}
    <h1>Wylogowanie</h1>
    <p>Zostales wylogowany. Mozesz
        <a href="{% url "account:login" %}">zalogowac sie ponownie</a></p>
{% endblock %}

settings.html

...
LOGIN_REDIRECT_URL = reverse_lazy('account:dashboard')
LOGIN_URL = reverse_lazy('account:login')
LOGOUT_REDIRECT_URL = reverse_lazy('account:logout')

показать ошибку

1 Ответ

0 голосов
/ 13 декабря 2018

Вы установили LOGOUT_REDIRECT_URL, чтобы указать обратно на LogoutView, что вызовет петлю перенаправления.LOGOUT_REDIRECT_URL должен указывать на URL , на который пользователь будет перенаправлен на после , когда они вышли из системы с помощью LogoutView.

Настройка LOGOUT_REDIRECT_URLпереопределит любой шаблон, который был установлен.Поскольку вы явно задали шаблон для LogoutView в своем urls.py, вам следует удалить LOGOUT_REDIRECT_URL из ваших настроек, что позволит отображать шаблон.

...