login_required接下来不重定向

时间:2019-01-08 16:10:45

标签: django django-2.0 login-required

我正在使用PyCharm和Chrome浏览《 Django 2示例》一书中的内容。我使用的是本书中指定的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这样分配登录网址:

LOGIN_REDIRECT_URL = 'dashboard'

LOGIN_URL = 'login'

LOGOUT_URL = 'logout'

如果我登录到管理页面,然后转到登录页面,它将正确显示仪表板,如下所示:

Screenshot of dev

但是我无法从登录屏幕登录。我在做什么错了?

1 个答案:

答案 0 :(得分:0)

使用@login_required代替@login_required(login_url="/this_is_your_url/ok/")