如何在Django REST框架中使用Router使APIView和ViewSet显示在API根?

7 投票
1 回答
5018 浏览
提问于 2025-04-18 08:14

我最近开始使用DRF(Django REST框架),想知道怎么让路由器自动生成的API根目录显示一些不是来自ViewSet的接口路由。

在我的情况下,我在views.py里有一些不是ViewSet的类视图(像ListAPIView和RetrieveAPIView),我希望它们能出现在我的API根目录里。

我也愿意考虑其他解决方案,比如我是否应该放弃ViewSet,换个方式来实现这些接口等等。

1 个回答

3

我觉得这里最好的做法是:

  • 继续使用你喜欢的所有视图集(ViewSets)、通用视图(Generic*)、混合视图(Mixins)或者简单视图。这些地方才是真正的工作所在。
  • 重写一下 APIRoot 视图(其实并不复杂,看看 这个源代码就明白了)。
  • 可以使用网址配置(urlconfig),或者扩展一下 DefaultRouter,让DRF使用你的APIRoot视图。

撰写回答