gpt4 book ai didi

python - 获取基于字段唯一的对象的查询集 - Django

转载 作者:太空宇宙 更新时间:2023-11-03 15:21:01 25 4
gpt4 key购买 nike

我有大量的车辆库存,并且有很多重复的车辆,仅通过库存编号来唯一。我正在尝试查询所有车辆的列表,但只想要每个型号的一辆车,忽略它的库存号字段。

V1.stock_no = 15393

V2.stock_no = 15394

V1.model_no = 98874

V2.model_no = 98874

因此,在 Django 中进行查询时,我只想要具有该型号的每个对象的一个​​实例。我读了这个堆栈溢出问题Select DISTINCT individual columns in django? ,但是

q = ProductOrder.objects.values('Category').distinct()

仅返回不同的型号列表,而不是对象实例,并且

Productorder.objects.all().distinct('category')

自 Django 1.4 起可用,仅适用于 PostgreSQL,不适用于 SQLite3。

有没有办法用 SQLite 来做到这一点,而不需要一些人为的 for 循环来完成它?

最佳答案

这是一种潜在的解决方案

q = ProductOrder.objects.filter(
id__in=ProductOrder.objects.values('Category')
.distinct()
.values_list('id', flat=True))

编辑:或者,你可以尝试

q1 = ProductOrder.objects.values('Category')
.distinct()
.annotate(x=Max('id'))
q2 = ProductOrder.objects.filter(
id__in=[i["x"] for i in q1])

我意识到这并不理想,但是由于必须循环。

关于python - 获取基于字段唯一的对象的查询集 - Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43550299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com