如何在列表Api视图中获得django rest分页的当前页面?



我如何,用这段代码,应该以适当的方式在Django Rest中获得分页的当前页面?

class LatestEpisodesAPIView(ListAPIView):
serializer_class = LatestEpisodeSerializer
pagination_class = StandardResultsSetPagination
def get(self, request, *args, **kwargs):
res = super(LatestEpisodesAPIView, self).get(request, *args, **kwargs)
res.render()
cache.set("apiepisode_p_" + HOWTOGETCURRENTPAGINATIONPAGE, res, 60*5)
return res

在此代码中,我希望将当前页面的响应缓存5分钟,这样可以避免过多的连接成本,因为每个请求的cpu操作成本最高可达500ms,并且该端点经常使用。为此,先决条件是每个页面都有一个惟一的键,一般来说就是页码。然而,由于DRF的官方文档本身缺乏光泽,关于分页本身的信息已经非常稀少,更不用说获取当前页面了。经过数小时对DRF文档的研究,以及强行的谷歌搜索,我自己仍然没有找到任何实现这一目标的方法。我相信我可以通过request.query_params.get("page")来做到这一点,但这似乎真的是硬编码,看起来更像一个hack而不是一个正确的做事方式。谢谢你的帮助!

好像没有" property ";在Django REST中实现这个目标的方法。所以我想出了这个"hack",还有更多的"property"。而不是问题中的那个request.query_params.get(StandardResultsSetPagination.page_size_query_param)

非常感谢!

最新更新