如何在Django REST框架中使用Router使APIView和ViewSet显示在API根?
我最近开始使用DRF(Django REST框架),想知道怎么让路由器自动生成的API根目录显示一些不是来自ViewSet的接口路由。
在我的情况下,我在views.py里有一些不是ViewSet的类视图(像ListAPIView和RetrieveAPIView),我希望它们能出现在我的API根目录里。
我也愿意考虑其他解决方案,比如我是否应该放弃ViewSet,换个方式来实现这些接口等等。
1 个回答
3
我觉得这里最好的做法是:
- 继续使用你喜欢的所有视图集(ViewSets)、通用视图(Generic*)、混合视图(Mixins)或者简单视图。这些地方才是真正的工作所在。
- 重写一下
APIRoot
视图(其实并不复杂,看看 这个源代码就明白了)。 - 可以使用网址配置(urlconfig),或者扩展一下
DefaultRouter
,让DRF使用你的APIRoot视图。