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

Django多应用URL整合:如何配置实现/user/blogs路径而非根路径blogs

Django多应用URL前缀配置方案

操作步骤

1. 修改项目根路由配置

打开项目根目录下和settings.py同层级的urls.py文件,将blogs应用的路由挂载到user/前缀下:

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

urlpatterns = [
    path('admin/', admin.site.urls),
    # 原有用户账户应用的路由配置,保持不变
    path('user/', include('你的用户账户应用名.urls')),
    # 新增blogs应用路由,同样挂载到user前缀下
    path('user/', include('blogs.urls')),
]

配置后blogs应用内定义的所有路由都会自动带上/user/前缀,原默认的/blogs路径会自动失效。

2. 配置blogs应用内部路由

打开blogs应用目录下的urls.py文件,按需求定义路径:

from django.urls import path
from . import views

# 配置app_name方便后续反向解析链接
app_name = 'blogs'

urlpatterns = [
    # 此处路径与上级/user/前缀拼接后为/user/blogs,匹配你的需求
    path('blogs', views.你的博客列表视图函数名, name='user_blogs'),
]

3. 导航栏链接配置

在模板的导航栏部分直接使用Django反向解析生成链接,避免硬编码出错:

<a href="{% url 'blogs:user_blogs' %}">blogs</a>

渲染后自动生成/user/blogs的跳转链接。

可选进阶配置

如果你的/user/blogs需要展示指定用户的博客,可将用户参数放在上级路由统一传递:

  1. 根路由修改为:
path('user/<int:user_id>/', include('blogs.urls')),
  1. blogs应用的视图函数直接接收参数:
def blogs_list(request, user_id):
    user_blogs = Blog.objects.filter(author_id=user_id)
    return render(request, 'blogs/list.html', {'blogs': user_blogs})

最终访问路径为/user/123/blogs,符合常见的用户资源路径设计规范。

注意事项

  • 如果需要同时保留/blogs和/user/blogs两个访问路径,只需在根路由中新增一条path('blogs/', include('blogs.urls'))配置即可
  • 配置完成后可执行python manage.py check命令检查路由是否存在冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:54:04