Comprobando si hay un conjunto de consultas vacío en Django
¿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...
Aceptado
if not orgs:
# The Queryset is empty ...
else:
# The Queryset has results ...
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() .
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