Tengo un gran inventario de vehículos y hay muchos duplicados que solo son únicos por un número de stock. Estoy tratando de consultar una lista de todos los vehículos, pero solo quiero un vehículo para cada número de modelo, ignorando su campo de número de inventario.
V1.stock_no = 15393
V2.stock_no = 15394
V1.model_no = 98874
V2.modelo_no = 98874
Entonces, cuando hago una consulta en Django, solo quiero una instancia de cada objeto con ese número de modelo. Leí esta pregunta de desbordamiento de pila ¿ Seleccionar columnas individuales DISTINTAS en django? , pero
q = ProductOrder.objects.values('Category').distinct()simplemente devuelve una lista distinta de números de modelo, y no la instancia del objeto, y
Productorder.objects.all().distinct('category')disponible desde Django 1.4, solo funciona con PostgreSQL y no con SQLite3.
¿Hay alguna manera de hacer esto con SQLite, sin tener un bucle for ideado para hacerlo?
Esta es una solución potencial
q = ProductOrder.objects.filter( id__in=ProductOrder.objects.values('Category') .distinct() .values_list('id', flat=True))Editar: alternativamente, puedes probar
q1 = ProductOrder.objects.values('Category') .distinct() .annotate(x=Max('id')) q2 = ProductOrder.objects.filter( id__in=[i["x"] for i in q1])Sin embargo, me doy cuenta de que esto no es ideal debido a tener que hacer un bucle.