在Django RestFramework中,Router没有显示正确的URL?

我是这样定义我的应用程序的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')),

]

THis is my base API view我没有得到正确的 creddefination 地址。但当我手动进入 http:/127.0.0.1:7000apicreddefination。 它是工作的。只是不能正确显示。这可能是什么原因

解决方案:

我想 views.CredDefViewSetviews.OverallViewSet 使用的是同一个模型。

如果这是真的,那么默认的 register‘s basename 将以该模型命名,并在调用Django的 reverse url构造。由于API Root视图会试图用相同的名称解析两个视图,所以会导致相同的url。

变通的方法是显式添加一个 basename 到其中的一个观点。

router.register('creddefination', views.CredDefViewSet, basename='creddeef')

给TA打赏
共{{data.count}}人
人已打赏
未分类

将文本转换为字段 Python [关闭]

2022-9-9 1:39:19

未分类

作为变量的Groovy方法

2022-9-9 1:39:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索