Comprobando si hay un conjunto de consultas vacío en Django

Resuelto Niklas asked hace 15 años • 7 respuestas

¿Cuál es el modismo recomendado para comprobar si una consulta arrojó algún resultado?
Ejemplo:

orgs = Organisation.objects.filter(name__iexact = 'Fjuk inc')
# If any results
    # Do this with the results without querying again.
# Else, do something else...

Supongo que hay varias formas diferentes de comprobar esto, pero me gustaría saber cómo lo haría un usuario experimentado de Django. La mayoría de los ejemplos en los documentos simplemente ignoran el caso en el que no se encontró nada...

Niklas avatar Sep 07 '09 12:09 Niklas
Aceptado
if not orgs:
    # The Queryset is empty ...
else:
    # The Queryset has results ...
Adam avatar Sep 07 '2009 05:09 Adam

Desde la versión 1.2, Django tiene QuerySet. existe() método que es el más eficiente:

if orgs.exists():
    # Do this...
else:
    # Do that...

Pero si vas a evaluar QuerySet de todos modos, es mejor usar:

if orgs:
   ...

Para obtener más información, lea la documentación de QuerySet.exists() .

Leonid Shvechikov avatar Mar 03 '2010 18:03 Leonid Shvechikov

Para comprobar el vacío de un conjunto de consultas:

if orgs.exists():
    # Do something

o puede buscar el primer elemento en un conjunto de consultas; si no existe, devolverá None:

if orgs.first():
    # Do something
Tuss4 avatar Apr 20 '2015 13:04 Tuss4