【发布时间】:2023-01-22 06:07:41
【问题描述】:
我有 order_by() 模型 django 并得到查询集以下结果:
queryset = <QuerySet [<MyModel: MyModel object (4)>, <MyModel: MyModel object (2)>,
<MyModel: MyModel object (1)>, <MyModel: MyModel object (3)>, <MyModel: MyModel object (5)>]>
结果未按 id 排序。
我想要具有订单 MyModel 和 id greater than 1 的切片查询集以获得以下结果:
new_queryset = <QuerySet [<MyModel: MyModel object (4)>, <MyModel: MyModel object (2)>]>
有没有办法像这样在没有循环的情况下进行切片以减少查询?
for index in range(len(queryset)):
if queryset[index].id == 1:
new_queryset = queryset[:index]
break
【问题讨论】:
-
您的查询集中的默认顺序是什么?
-
我有 2 个关于 order_by 的日期时间字段,如下所示:.order_by(F("publish_datetime").desc(nulls_last=True), "-modified")
标签: python django django-models django-queryset django-orm