首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向Django REST Framework Browsable API添加APIView

向Django REST Framework Browsable API添加APIView
EN

Stack Overflow用户
提问于 2015-02-26 05:36:08
回答 2查看 28.3K关注 0票数 36

我一直在使用Django REST框架开发REST后端。

但是,我在向web browsable API添加APIView实例时遇到了问题。

documentationprevious answer建议我所要做的就是添加一个文档字符串。

这对我不起作用。

我假设browsable API只显示已向路由器注册的视图集端点。

如果是这样,如何将APIView类注册到路由器?

以下是我当前的路由器代码:

代码语言:javascript
复制
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'),
)

目前,只显示令牌端点。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2015-05-26 16:29:00

路由器不是为普通视图而设计的。如果你想把你的url注册到你的路由器上,你需要使用ViewSet。

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

票数 21
EN

Stack Overflow用户

发布于 2015-05-05 17:10:14

我相信包含router.urls的那一行是在“抢占”其他以api开头的urls。试着换衣服,

代码语言:javascript
复制
url(r'^api/', include(router.urls)),

代码语言:javascript
复制
url(r'^tokenapi/', include(router.urls)),

如果有效,那么尝试将包含的行移动到url模式列表中的最后一行,并将tokenapi改回api。

代码语言:javascript
复制
urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.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'),
    url(r'^api/', include(router.urls)),
)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28730109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档