【发布时间】:2019-04-27 14:54:06
【问题描述】:
我无法理解以下警告。我有一个名为“v1”的命名空间,我正在使用这些命名空间来确定我的 API 中的版本控制(使用 django rest 框架)。所以,我有这样的路径:
/v1/accounts/me
/v1/listings
这里是 URLs 配置(project/urls.py):
urlpatterns = [
path('admin/', admin.site.urls),
path('v1/accounts/', include('accounts.urls', namespace='v1')),
path('v1/listings/', include('listings.urls', namespace='v1'))
]
accounts/urls.py
app_name = 'accounts'
urlpatterns = [
url(r'^token/$', views.obtain_auth_token, name='obtain_token'),
url(r'^me/$', my_account, name='my_account'),
]
listings/urls.py
app_name = 'listings'
urlpatterns = [
path('', recent_listings, name='recent_listings')
]
一切都按预期进行。所有网址都已发送。版本控制工作。但是,我不断收到以下错误:
?: (urls.W005) URL 命名空间“v1”不是唯一的。您可能无法反转此命名空间中的所有 URL
我知道这是一个警告,我也许可以抑制它;但是,我想了解为什么会这样。根据我的 URLconf 和这个警告,似乎不能有多个命名空间路径作为“兄弟”。它们必须是一个命名空间路径的子级(例如“v1”)。如果我的理解是正确的,我应该如何创建这个 URL 配置。
【问题讨论】:
标签: python django django-urls