Nus*_*chk 2 django django-rest-framework
我使用带有NamespaceVersioning的django-rest-framework.我的主要urls.py看起来像这样:
...
url(r'^api/v1/', include('my_api.api_urls', app_name="api", namespace='v1')),
...
Run Code Online (Sandbox Code Playgroud)
在my_api.api_urls.py中:
urlpatterns = [
url(r'^some-endpoint/$', api_views.MyView.as_view(), name='some'),
]
Run Code Online (Sandbox Code Playgroud)
不知何故,我无法撤消这些网址.为什么我不能这样做?我得到一个NoReverseMatch例外.
reverse('some')
Run Code Online (Sandbox Code Playgroud)
我无法围绕django的命名空间,但不应该只使用最后定义的路线?如果我从主url中删除命名空间参数,一切正常.
编辑
也不工作:
reverse('v1:some')
Run Code Online (Sandbox Code Playgroud)
我也可以补充说,在我的主urls文件中,我将多个url文件包含在api/v1 /前缀中:
...
url(r'^api/v1/', include('my_api.api_urls', app_name="api", namespace='v1')),
url(r'^api/v1/', include('my_other_api.api_urls', app_name="api", namespace='v1')),
...
Run Code Online (Sandbox Code Playgroud)
在django中反转url名称时,必须使用namespace:url-namepattern 进行反转.
您的反向调用应如下所示:
reverse('v1:some')
Run Code Online (Sandbox Code Playgroud)
更新:您在多个url条目上使用相同的命名空间.保持url名称空间的唯一性.
| 归档时间: |
|
| 查看次数: |
823 次 |
| 最近记录: |