You should change in your query
pro = list(Products.objects.exclude(id__in=started_pros).values_list('id', flat=True))
or
pro = list(Products.objects.exclude(id__in=started_pros))
Because iterating a queryset make another query
Domanda
I am using Django ORM nested queries.
Reference found here:
https://docs.djangoproject.com/en/dev/ref/models/querysets/#in
But when i count connection.queries
its say 122, i am so surprised if i am hitting db for 122 times?
from django.db import connection
connection.queries = []
started_pros = Log.objects.filter(state="Chemist Working").values_list('product__id', flat=True).distinct()
pro = Products.objects.exclude(id__in=started_pros)
print [r.id for r in pro]
len(connection.queries) #122
What i am doing wrong?
Soluzione
You should change in your query
pro = list(Products.objects.exclude(id__in=started_pros).values_list('id', flat=True))
or
pro = list(Products.objects.exclude(id__in=started_pros))
Because iterating a queryset make another query