This question already has answers here:
How can I register a single view (not a viewset) on my router?

(2个答案)


3年前关闭。




我一直在使用Django REST Framework开发REST后端。
但是,我在将APIView实例添加到Web可浏览API时遇到问题。

documentationprevious answer建议我要做的就是添加一个文档字符串。
它对我没有用。

我假设可浏览的API仅显示Viewset端点已向路由器注册。
如果是这样,如何将APIView类注册到路由器?

以下是我当前的路由器代码:
router = DefaultRouter(trailing_slash=False)
router.register(r'tokens', TokenViewSet, base_name='token')
urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^api/', include(router.urls)),
    url(r'^api/register$', RegisterUser.as_view(), name='register_user'),
    url(r'^api/auth$', ObtainAuthToken.as_view(), name='obtain_token'),
    url(r'^api/me$', ObtainProfile.as_view(), name='obtain_profile'),
    url(r'^api/recover$', FindUsername.as_view(), name='recover_username'),
)

当前,仅显示 token 端点。

谢谢你。

最佳答案

路由器并非为普通 View 而设计。如果要注册您的路由器网址,则需要使用ViewSet。

我在这里有同样的问题。也许您可以引用它:
How can I register a single view (not a viewset) on my router?

10-06 08:53