Question

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?

Code

 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?

Was it helpful?

Solution

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top