首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

根据具有ids和分数的其他列表对Django查询集进行排序

在Django中,可以使用order_by()方法对查询集进行排序。根据具有ids和分数的其他列表对Django查询集进行排序的步骤如下:

  1. 首先,获取具有ids和分数的其他列表。假设这个列表是other_list,其中每个元素都是一个字典,包含idscore两个键。
  2. 将查询集与other_list进行连接,可以使用Django的annotate()方法来实现。假设查询集是queryset,可以使用以下代码将其与other_list连接起来:
代码语言:txt
复制
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')
  1. 现在,查询集已经按照other_list中的顺序进行排序。可以通过访问queryset来获取排序后的结果。

这种方法可以根据other_list中的ids和分数对查询集进行排序,并且不需要提及任何特定的云计算品牌商。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券