python-3.x - 如何添加分页:super()
问题描述
我正在尝试在模型视图集中使用 super().list() 方法添加分页
class RecentlyViewedVideosViewSet(ResponseViewMixin, mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet):
queryset = RecentlyViewedVideos.objects.all()
serializer_class = RecentlyViewedVideosSerializer
def list(self, request, **kwargs):
print('list')
try:
if 'learner_id' in self.kwargs:
learner_id = self.kwargs['learner_id']
else:
learner_id = self.request.learner.id
response_data = super().get_queryset().filter(learner_id=learner_id)
print(response_data)
serializer = RecentlyViewedVideosSerializer(response_data, many=True)
return self.jp_response(s_code='HTTP_200_OK', data=serializer.data)
在输出中,它显示了表格中的所有文档,但我只需要“详细信息”中的那些细节,给我一种获得准确输出的方法。
解决方案
在方法中这样做可能会更好.get_queryset(…)
:
def get_queryset(self):
if 'learner_id' in self.kwargs:
learner_id = self.kwargs['learner_id']
else:
learner_id = self.request.learner.id
return super().get_queryset().filter(learner_id=learner_id)
那么过滤,分页等的样板代码,视图仍然是.list(…)
通过ListModelMixin
.
推荐阅读
- java - 没有可用的“repository.PersonRepository”类型的合格 bean
- javascript - 在 javascript 中制定特定模式
- mysql - INNER JOIN 和 SELECT 的组合
- javascript - symfony 2中的嵌套表单集合
- javascript - 当 var 大于 14 时使 div 出现。否则保持隐藏
- smbj - smbj API 是否支持 SMB v3.x 方言版本?
- jhipster - 使用 Jhipster 在 Admin (pb MySQL) 中连接错误登录
- python - python使用中大于但小于函数
- mysql - 选择关于特定项目的日期之间的记录
- swift - Xcode 10.1 协议一致性与 Xcode 10.2 beta