我是这样定义我的应用程序的urls.py文件的
router = DefaultRouter()
router.register('hello-viewset', views.HelloViewSet, base_name='hello-viewset')
router.register('profiles', views.UserProfileViewSet)
router.register('schema', views.SchemaViewSet)
router.register('creddefination', views.CredDefViewSet)
router.register('overalltable', views.OverallViewSet)
urlpatterns = [
path('', include(router.urls)),
]
项目的urls.py。
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('DIAPI.urls')),
]
我没有得到正确的 creddefination 地址。但当我手动进入 http:/127.0.0.1:7000apicreddefination。 它是工作的。只是不能正确显示。这可能是什么原因
我想 views.CredDefViewSet
和 views.OverallViewSet
使用的是同一个模型。
如果这是真的,那么默认的 register
's basename
将以该模型命名,并在调用Django的 reverse
url构造。由于API Root视图会试图用相同的名称解析两个视图,所以会导致相同的url。
变通的方法是显式添加一个 basename
到其中的一个观点。
router.register('creddefination', views.CredDefViewSet, basename='creddeef')