Django не перенаправляет на следующую страницу со встроенным видом входа в систему - PullRequest
1 голос
/ 06 марта 2020

Я не знаю, что происходит с моим кодом, когда пользователь, не прошедший проверку подлинности, пытается получить доступ к странице и перенаправляет ее на страницу входа, я вижу следующий параметр в браузере, но после входа пользователя он переводит пользователя на LOGIN_REDIRECT_URL по умолчанию, а не на следующую страницу. Также в шаблоне next не возвращает none, поэтому кажется, что шаблон не получает следующее значение, но в 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'),
]

регистрация / логин. 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 %}

1 Ответ

1 голос
/ 06 марта 2020

Используйте LOGIN_REDIRECT_URL в вашем файле settings.py.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...