¿Cuál es el modismo recomendado para comprobar si una consulta arrojó algún resultado?
Ejemplo:Comprobación de queryset vacío en Django
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 maneras diferentes de comprobar esto, pero me gustaría saber cómo un usuario experimentado Django lo haría. mayoría de los ejemplos en los documentos simplemente ignorar el caso en que no se encontró nada ...
Este parece ser también preferido en la documentación, por ejemplo: https: // docs.djangoproject.com/en/1.8/topics/http/shortcuts/#id7 – Wtower
@Wtower El código al que se refiere tiene un contrato para generar 404 si la expresión de filtrado no coincide con ningún registro o produce una 'lista' del resultado si hay registros. El código allí golpeará la base de datos solo una vez. Si usaban 'exists()' o 'count()' para verificar primero si van a haber registros devueltos, estarían golpeando la base de datos dos veces (una para verificar, una para obtener los registros). Esta es una situación específica. No implica que en el * caso general *, el método preferido para saber si una consulta devolverá registros es usar do 'if queryset: ...' – Louis
@Louis el código al que me refiero es solo un ejemplo que contiene una línea 'if not my_objects:' para demostrar que así es como lo hacen en los documentos. Todo lo demás es completamente irrelevante, así que no entiendo tu punto. También podrían hacer mil consultas y aún sería totalmente irrelevante ya que este no es el objetivo de esta respuesta, con lo cual dejo en claro que estoy de acuerdo. – Wtower