Pergunta

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?

Foi útil?

Solução

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top