按一个字段获取2个项目,按时间顺序获取其他项

问题描述 投票:0回答:1

我有一个模特:

class Car(models.Model):
   price = models.IntegerField()
   created_at = models.DateTimeField(auto_now_add=True)
   ....

我想创建一个Queryset,在其中我得到一个列表,其中两个前一个元素将是价格最高的Car,而其他元素按时间顺序created_at。

我将对任何命题如SQL或Queryset表示感谢。只需向数据库发送一个请求就可以了。

sql postgresql django-rest-framework django-queryset
1个回答
0
投票

以最高的价格获得前两辆车

q1 = Car.objects.order_by('price')[:1]

要休息一下created_at订单

qs2 = Car.objects.exclude(id__in=qs)

您将拥有两个查询集,并且可以同时使用两者。

UPDATE:

q = q1.union(q2)

现在,q是一个查询集,尚未对数据库进行任何查询,您可以执行与分页等有关的任何任务。

© www.soinside.com 2019 - 2024. All rights reserved.