【问题标题】:Specifying a namespace in include() without providing an app_name is not supported不支持在 include() 中指定命名空间而不提供 app_name
【发布时间】:2019-02-13 10:39:46
【问题描述】:

我收到这些错误

不支持在 include() 中指定命名空间而不提供 app_name。在包含的模块中设置 app_name 属性,或者传递一个包含模式列表和 app_name 的 2 元组。

我的代码如下所示

项目名称.urls

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include('learning.urls',namespace='learning')),
  ]

app_name.urls

from django.urls import path
from learning.views import SendEmail

urlpatterns = [
   path('',SendEmail.as_view(),name='home')
]

【问题讨论】:

  • 您应该将app_name 属性添加到 learning.urls。检查this example

标签: python django django-urls


【解决方案1】:

试试这个解决方案:

from django.urls import path
from learning.views import SendEmail

app_name = "learning"

urlpatterns = [
    path('',SendEmail.as_view(),name='home')
]

【讨论】:

  • 请注意,一旦添加了app_name,就可以从include() 中删除namespace='learning'。如果您希望namespaceapp_name 不同,则只需设置namespace