DRF集成Djoser后无法查看根端点,求问题排查方案
Djoser集成后/auth/根端点仅显示users链接的问题解决
你当前访问http://127.0.0.1:8000/api/v1/auth/只返回users链接,核心原因是Djoser的根端点只会展示当前挂载路径下包含的子路由入口——你把token相关的路由单独挂载到了/api/v1/auth_token/路径下,所以/auth/根端点不会显示token类的入口。
修改方案
调整urls.py,将djoser.urls.authtoken的路由整合到/api/v1/auth/路径下,有两种写法可选:
写法一:嵌套include
urlpatterns = [ path('admin/', admin.site.urls), path('api/v1/base-auth/', include('rest_framework.urls')), path('api/v1/cars_app/', include('cars_app.urls')), path('api/v1/auth/', include([ path('', include('djoser.urls')), path('', include('djoser.urls.authtoken')), ])), ]
写法二:重复挂载路径
urlpatterns = [ path('admin/', admin.site.urls), path('api/v1/base-auth/', include('rest_framework.urls')), path('api/v1/cars_app/', include('cars_app.urls')), path('api/v1/auth/', include('djoser.urls')), path('api/v1/auth/', include('djoser.urls.authtoken')), ]
修改完成后,重新访问/api/v1/auth/,就能看到包含login、logout、users等所有相关端点的完整根响应内容。
补充说明
如果坚持要把token路由放在/api/v1/auth_token/下,这本身是合法的路由配置,但/auth/根端点自然不会显示该路径下的内容,此时你可以直接访问/api/v1/auth_token/查看对应的token端点列表,这属于正常的路由隔离逻辑。
内容的提问来源于stack exchange,提问作者Molly
相关产品推荐
相关产品推荐

