【发布时间】:2021-01-24 00:27:59
【问题描述】:
在 django rest 框架中,我在模型上使用 20 的分页。 现在我想制作一个查询集,它需要 5 个项目,其中特色字段为真。 其他 15 个应该是特征字段为 false 的项目。
有人知道如何进行这项工作吗?
permission_classes = [AllowAny]
serializer_class = JobSerializer
pagination_class = Pagination
order_types = {
1: 'job_order', #by randomized job order
2: '-created_date', #newest to oldest
3: 'created_date', #oldest to newest
4: 'name', #by name A -> Z,
5: '-name' #by name Z -> A,
}
def get_queryset(self):
requirements = self.request.query_params.getlist('requirements', None)
order_param = self.request.query_params.get('order_by', 1)
#make querysets
queryset_featured = Job.objects.all().filter(active=True, featured=True).order_by(self.order_types[int(order_param)])
queryset_non_featured = Job.objects.all().filter(active=True, featured=False).order_by(self.order_types[int(order_param)])
return queryset.distinct()
【问题讨论】:
-
您只想按精选内容排序?
-
@JamesLin 我想做 2 个查询集,1 个有特色,1 个没有。 20 页的每一页我都希望有 5 个有特色,另外 15 个没有特色
标签: django django-rest-framework django-forms pagination django-queryset