You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django如何实现已登录用户访问登录页面时自动跳转?

解决方案

你只需要在视图函数的入口位置增加已登录状态校验即可,Django 自带的request.user.is_authenticated属性可以直接判断当前访问用户的登录状态,修改后的代码如下:

def login(request):
    # 已登录用户直接跳转,不进入登录流程
    if request.user.is_authenticated:
        # 可根据需求替换为其他跳转地址
        return redirect('/')
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        user = authenticate(request, username=username, password=password)
        if user is not None:
            logIn(request, user)
            return redirect('/')
        else:
            messages.info(request, 'username or password is wrong')
    context = {}
    return render(request, 'account/login.html', context)

逻辑说明

  • 新增的判断优先于所有业务逻辑执行,不管用户是通过GET请求访问登录页面,还是手动构造POST请求提交登录数据,只要处于登录状态都会被直接拦截跳转
  • 如果你后续需要调整跳转目标,直接修改redirect()方法内的参数即可

内容的提问来源于stack exchange,提问作者user16735766

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 19:39:01