Django没有重定向到下一页

时间:2020-03-03 18:17:15

标签: python django

我不知道我的代码发生了什么,一旦未经身份验证的用户尝试访问页面并将其重定向到登录页面,我可以在浏览器中看到下一个参数,但是在用户登录后,将用户带到默认的LOGIN_REDIRECT_URL,而不是下一页。此外,在模板上,next不返回任何值,因此似乎模板没有获得下一个值,但是在url中显示/?next =,谢谢。

urls.py

from django.contrib import admin
from django.urls import path, include
from django.contrib.auth import views as auth_views
from blog import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.HomeView.as_view(),name="index"),
    path('accounts/login/', auth_views.LoginView.as_view(), name='login'),
    path('accounts/logout/', auth_views.LogoutView.as_view(next_page='/'), name='logout'),
    path('accounts/profile/', views.ProfileView.as_view(), name='profile'),
]

registration / login.html

{% extends 'app/base.html' %}

{% block link %} id="active" {%endblock%}

{% block content %}
<div class="row">
    <div class="col-md-3">

    </div>
    <div class="col-md-6">
        <div class="jumbotron" id="font">

            {% if next %}
                {% if user.is_authenticated %}
                <h2 class="customtext" align="center">Your account doesn't have access to this page. To proceed,
                please login with an account that has access.</h2>
                {% else %}
                <h2 class="customtext" align="center">Please login.</h2>
                {% endif %}
            {% else %}
            <h2 class="customtext" align="center">Enter your login details.</h2>
            {% endif %}
            <form action="{% url 'login' %}" method="POST">
                {%csrf_token%}
                <div class="form-group">
                    <input type="text" name="username" placeholder="username" class="form-control">
                </div>
                <div class="form-group">
                    <input type="password" name="password" placeholder="password" class="form-control">
                </div>
                <!-- <div align="center"> -->
                    {% if form.errors %}
                        <!-- <p style="color: red; font-style: italic;">Your username or email is does not match.</p> -->
                        {{form.errors}}
                    {% endif %}
                <!-- </div> -->
                <div class="loginbtndiv" align="center">
                    <input type="submit" class="btn btn-warning btn-lg loginbtn" value="LOGIN">
                </div>
                <input type="hidden" name="next" value="{{ next }}">
            </form>

        </div>
    </div>
    <div>

    </div>
</div>

{% endblock %}

0 个答案:

没有答案