【发布时间】:2019-07-22 08:31:48
【问题描述】:
我有一个用于 X 对象的 APIView。我想要一个获取请求get_X(接收X 对象的ID)和一个获取请求get_multiple_X(获取所有X 对象)。
目前的解决方案是:我们有两个APIView:一个叫XView(包含get_X),第二个叫XListView(包含get_multiple_X)。
有没有办法在同一个 APIView 中发出两个请求?我只想拥有一个 APIView (XView)。
在这种情况下,最佳做法是什么?
【问题讨论】:
-
您可能要考虑使用
ViewSets:django-rest-framework.org/api-guide/viewsets -
@WillemVanOnsem 谢谢!这似乎正是我所需要的!
-
@WillemVanOnsem 实际上这也会在一天结束时将视图分隔为单独的视图,所以我想我最好继续使用当前的解决方案,因为它是相同的。
-
通常它包含很多样板代码,因此
ModelViewSet通常只需要一个模型和序列化程序。当然,如果与 get 相比,list 所做的事情完全不同,那么你可以以不同的方式实现它。 django-rest-framework.org/api-guide/viewsets/#modelviewset -
@WillemVanOnsem 我明白你说的。逻辑不是很复杂,视图位于同一个文件中。
modelviewset看起来很有趣,我会探索它。感谢您的帮助!