Esc*_*her 6 django django-rest-framework
我的DRF路由器指定了一个命名空间,以便我可以使用reverse我的URL:
urls.py:
router = DefaultRouter()
router.register('widget/', MyWidgetViewSet, base_name='widgets')
urlpatterns =+ [
url(r'/path/to/API/', include(router.urls, namespace='widget-api'),
]
Run Code Online (Sandbox Code Playgroud)
其中,升级到django 2时,会给出:
django.core.exceptions.ImproperlyConfigured:不支持在include()中指定名称空间而不提供app_name.在包含的模块中设置app_name属性,或者传递包含模式列表和app_name的2元组.
Django的2 现在要求 app_name如果namespace使用时指定kwarg include.什么是指定app_nameDRF url路由器构建url模式的正确方法?我不认为django 2 的文档是关于这个主题的最新文档.
eri*_*ric 10
您需要输入app_name = 'x'应用程序的url.py文件.这有点埋没在文档中:https:
//docs.djangoproject.com/en/2.0/topics/http/urls/#id5
例如,如果/project/project/urls.py你有:
path('', include('app.urls', namespace='app'))
Run Code Online (Sandbox Code Playgroud)
然后在相应的url文件(in /project/app/urls.py)中,你需要指定app_name参数:
app_name = 'app' #the weird code
urlpatterns = [
path('', views.index, name = 'index'), #this can be anything
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3434 次 |
| 最近记录: |