Django添加namespace后触发ImproperlyConfigured错误求助
Django命名空间配置错误解决方法
这个错误和PyCharm依赖包无关,是Django的URL命名空间配置规则导致的。当你在include()中指定namespace参数时,必须同时明确app_name,否则Django无法将命名空间与对应应用的URL配置关联起来。
两种解决方法:
方法一:在应用的urls.py中设置app_name
修改polls/urls.py,添加app_name变量,示例如下:
from django.urls import path from . import views # 新增这一行,指定应用名称 app_name = 'polls' urlpatterns = [ path('', views.index, name='index'), path('<int:question_id>/', views.detail, name='detail'), # 其他URL配置项... ]
修改后,主urls.py中原本的include('polls.urls', namespace="polls")就能正常生效。
方法二:在主urls.py中以元组形式传入include参数
如果不想修改应用的urls.py,可以将include的参数改为元组,格式为(URLpatterns列表, app_name),示例如下:
from django.contrib import admin from django.urls import path, include # 导入polls应用的URL配置 from polls.urls import urlpatterns as polls_urls urlpatterns = [ path('admin/', admin.site.urls), # 用元组传入URL配置和app_name path('polls/', include((polls_urls, 'polls'), namespace="polls")), ]
补充说明
之前项目运行正常是因为没有使用namespace,Django不需要关联应用名称;添加namespace后,必须满足命名空间与应用的绑定规则,否则就会触发ImproperlyConfigured异常。
内容的提问来源于stack exchange,提问作者Maxy
相关产品推荐
相关产品推荐

