我有大量的车辆库存,并且有很多重复项只有库存号是唯一的。我正在尝试查询所有车辆的列表,但每个型号只需要一辆车,忽略它的库存号字段。
V1.stock_no = 15393
V2.stock_no = 15394
V1.model_no = 98874
V2.model_no = 98874
因此,当在Django中进行查询时,我只希望每个对象的一个实例具有该模型。我读了这个Stack Overflow问题Select DISTINCT individual columns in django?,但是
q = ProductOrder.objects.values('Category').distinct()
只返回一个不同的模型编号列表,而不是对象实例和
Productorder.objects.all().distinct('category')
自Django 1.4起可用,仅适用于PostgreSQL,而不适用于SQLite3。
有没有办法用SQLite做到这一点,没有一些人为的循环来完成它?
答案 0 :(得分:1)
这是一个潜在的解决方案
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])
我意识到这不是理想的,因为必须循环。