作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的DRF路由器指定了一个 namespace ,以便我可以reverse
我的网址:
urls.py:
router = DefaultRouter()
router.register('widget/', MyWidgetViewSet, base_name='widgets')
urlpatterns =+ [
url(r'/path/to/API/', include(router.urls, namespace='widget-api'),
]
django.core.exceptions.ImproperlyConfigured: Specifying a namespace in include() without providing an app_name is not supported. Set the app_name attribute in the included module, or pass a 2-tuple containing the list of patterns and app_name instead.
app_name
(如果在使用
namespace
时指定了
include
kwarg)。由DRF url路由器构造url模式时,指定
app_name
的正确方法是什么?我认为
the documentation在django 2上不是最新的。
最佳答案
您需要将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'))
/project/app/urls.py
中),您需要使用以下命令指定
app_name
参数:
app_name = 'app' #the weird code
urlpatterns = [
path('', views.index, name = 'index'), #this can be anything
]
关于django - 如何在Django 2中注册DRF路由器URL模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47654342/
我是一名优秀的程序员,十分优秀!