login_required следующий без перенаправления

Я прорабатываю урок в книге Django 2 By Example with PyCharm и Chrome. Я использую Django 2.0.8, как указано в книге. Как говорится, у меня есть следующий шаблон base.html:

{% load staticfiles %}
<!DOCTYPE html>
<html>
<head>
  <title>{% block title %}{% endblock %}</title>
  <link href="{% static 'css/base.css' %}" rel="stylesheet">
</head>
<body>
  <div id="header">
    <span class="logo">Bookmarks</span>
    {% if request.user.is_authenticated %}
      <ul class="menu">
        <li {% if section == "dashboard" %} class="selected" {% endif %}>
          <a href="{% url 'dashboard' %}">My dashboard</a>
        </li>
        <li {% if section == "images" %} class="selected" {% endif %}>
          <a href="#">Images</a>
        </li>
        <li {% if section == "people" %} class="selected" {% endif %}>
          <a href="#">People</a>
        </li>
      </ul>
    {% endif %}

    <span class="user">
      {% if request.user.is_authenticated %}
        Hello {{ request.user.first_name }},
        <a href="{% url 'logout' %}">Logout</a>
      {% else %}
        <a href="{% url 'login' %}">Log-in</a>
      {% endif %}
    </span>
  </div>

  <div id="content">
    {% block content %}
    {% endblock %}
  </div>
</body>
</html>

Кажется, это время от времени меня входило в систему? Он сработает один раз, затем я выйду из системы, и он не позволит мне войти снова.

В моем views.py есть представление login_required, которое перенаправляет на шаблон панели инструментов и назначает контекст раздела:

@login_required
def dashboard(request):
    return render(request, 'account/dashboard.html', {'section': 'dashboard'})

Мой settings.py назначает такие URL-адреса для входа:

LOGIN_REDIRECT_URL = 'dashboard'

LOGIN_URL = 'login'

LOGOUT_URL = 'logout'

Если я вхожу на страницу администратора, а затем перехожу на свою страницу входа, панель управления отображается правильно, как это:

Снимок экрана разработчика

Но я не могу войти в систему с экрана входа в систему. Что я делаю неправильно?


person Davtho1983    schedule 08.01.2019    source источник


Ответы (1)


Вместо @login_required используйте @login_required(login_url="/this_is_your_url/ok/")

person shafik    schedule 08.01.2019
comment
Я не указываю это в настройках? Также я не хочу жестко кодировать URL-адрес? - person Davtho1983; 08.01.2019
comment
Вы импортируете это from django.contrib.auth.decorators import login_required - person shafik; 08.01.2019
comment
Да, это то, что у меня есть в моем импорте - person Davtho1983; 08.01.2019