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

Django4中配置BaseURL遇url导入报错,该如何解决?

问题根源

Django 4.x 已经彻底移除了django.conf.urls.url这个工具函数——它早在Django 3.1就被标记为弃用,官方推荐用re_path()(适配正则表达式路径)或path()(适配简单固定路径)来替代。你找到的那篇Stack Overflow文章是针对旧版Django(比如2.x之前)的方案,自然不适用于Django4。

修复代码

如果你需要保留正则匹配逻辑(和原代码逻辑完全一致)

把url替换成re_path,同时修改导入语句:

from django.urls import include, re_path  # 替换原导入
from . import views
from django.contrib import admin  # 别忘了导入admin模块

urlpatterns = [
    re_path(r'^someuri/', include([
        re_path(r'^admin/', admin.site.urls),
        re_path(r'^other/$', views.other)
    ])),
]

如果你不需要正则表达式(更简洁的写法)

用path()替代,不需要加正则的r'^'和$:

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

urlpatterns = [
    path('someuri/', include([
        path('admin/', admin.site.urls),
        path('other/', views.other)
    ])),
]
小提醒
  • 必须导入django.contrib.admin,不然admin.site.urls会报错;
  • 这种嵌套include的写法确实能实现你要的“base URL”效果,所有子路由都会自动带上someuri/前缀。

内容的提问来源于stack exchange,提问作者Artur Müller Romanov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 00:55:13