在Django中,可以使用order_by()
方法对查询集进行排序。根据具有ids和分数的其他列表对Django查询集进行排序的步骤如下:
other_list
,其中每个元素都是一个字典,包含id
和score
两个键。other_list
进行连接,可以使用Django的annotate()
方法来实现。假设查询集是queryset
,可以使用以下代码将其与other_list
连接起来:from django.db.models import Case, When
# 获取ids列表
ids = [item['id'] for item in other_list]
# 构建Case语句
cases = [When(id=id_val, then=pos) for pos, id_val in enumerate(ids)]
# 使用annotate方法连接查询集和other_list
queryset = queryset.annotate(order=Case(*cases, default=len(ids)))
# 根据order字段进行排序
queryset = queryset.order_by('order')
other_list
中的顺序进行排序。可以通过访问queryset
来获取排序后的结果。这种方法可以根据other_list
中的ids和分数对查询集进行排序,并且不需要提及任何特定的云计算品牌商。
领取专属 10元无门槛券
手把手带您无忧上云