繁体   English   中英

当需要登录时,Django 不会在自定义登录后重定向到“下一步”

[英]Django does not redirect to "Next" after custom login when login is required

当我使用 Django 提供的登录视图时,它会在登录后重定向到所需的页面。 我的代码如下:

网址.py

from django.urls import path
from admn import views as views
from django.contrib.auth import views as log_views
urlpatterns = [
        path('login/', log_views.LoginView.as_view(template_name='login.html'), name='login'),
        path('profile/', views.profile, name='profile'),
    ]

视图.py

from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
@login_required(login_url='/login/')
def  profile(request):
    return render (request, 'profile.html')

但是,当我使用自定义登录时,它会登录但不会重定向初始页面。 我的代码如下:

网址.py

from admn import views as views
from django.urls import path
urlpatterns = [
        path('login/', views.login, name='administration-login'),
        path('profile/', views.profile, name='profile'),
    ]

视图.py

from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
from myforms import UserLoginForm
from django.contrib import messages

def login(request):
    if request.method == 'POST':
        form = UserLoginForm(request.POST)
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(request, username=username, password=password)
        if user is not None:
            dj_login(request, user)
            messages.success(request, f'You are logged in {username}!')
        else:
            messages.error(request, f'Not logged in')
    else: 
        form = UserLoginForm()
    return render (request, 'login.html',{'form':form})

@login_required(login_url='/login/')
def  profile(request):
    return render (request, 'profile.html')

你有没有设置

LOGIN_REDIRECT_URL = 个人资料

在setting.py文件中?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM