Django Specifying a namespace in include() without providing an app_name

本文详细解析了在Django项目中如何正确配置URL路由,包括项目主路由与应用级路由的设置,以及如何通过命名空间避免路由冲突。通过具体代码示例,读者可以了解如何在app目录下的urls.py中进行路由配置,以及如何使用app_name参数解决命名空间问题。

发生报错的时候的代码:

项目同名目录下的urls.py中,也就是项目的主路由中初始代码:

from django.contrib import admin
from django.conf.urls import url, include

urlpatterns = [
    url('admin/', admin.site.urls),
    url(r'^users/', include('users.urls',  namespace='users')),
]

其中一个app目录下的urls.py中路由初始设置代码(我的app名称是users)

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^index/$', views.index, name='index'),
    url(r'^weather1/([a-z]+)/(\d{4})/$', views.weather1, name='weather1')
]

修改之后

项目同名目录下的urls.py文件代码不变
app目录下的urls.py中路由代码修改为:

from django.conf.urls import url
from . import views
app_name = "users"  # 代码修改时这里,加上这个app在主路由中命名空间的名字,即namespace指定的名字

urlpatterns = [
    url(r'^index/$', views.index, name='index'),
    url(r'^weather1/([a-z]+)/(\d{4})/$', views.weather1, name='weather1')
]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值