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

Django如何实现站点加载时自动跳转至当前登录用户专属首页

实现方案

你需要新增一个根路径的跳转视图,配合路由配置实现自动跳转,无法直接通过静态路由配置自动填充用户名,具体操作如下:

1. 调整根路由配置

修改项目根目录的urls.py,保留空路径规则用于跳转,同时保留你需要的带用户名前缀的路由:

from django.contrib import admin
from django.urls import path, include
from . import views

urlpatterns = [
    path('admin/', admin.site.urls),
    # 根路径指向跳转视图
    path('', views.home_redirect, name='home_redirect'),
    # 带用户名前缀的业务路由
    path('<username>/', include('blog.urls')),
]

2. 编写跳转视图

在项目根目录新建views.py,编写跳转逻辑,用login_required装饰器校验用户登录状态:

from django.shortcuts import redirect
from django.contrib.auth.decorators import login_required

@login_required
def home_redirect(request):
    # 获取当前登录用户的用户名,拼接路径跳转
    return redirect(f'/{request.user.username}/')

3. 补充必要配置

在项目settings.py中配置登录跳转路径,未登录用户访问根路径时会自动跳转到登录页:

# 替换为你实际的登录页面路径
LOGIN_URL = '/admin/login/'

注意事项

  • 路由配置要保证空路径规则在<username>动态路由之前,避免被动态路由优先匹配导致跳转逻辑失效
  • 你的blog应用下的所有视图都需要接收username参数,建议在视图中增加校验逻辑,避免用户修改URL访问其他用户的专属页面:
# blog应用下的视图示例
def user_index(request, username):
    if username != request.user.username:
        return redirect('home_redirect')
    # 后续业务逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 16:12:03