¿Hay alguna diferencia entre filtro y exclusión en django? Si tengoDjango filter vs exclude
self.get_query_set().filter(modelField=x)
y quiero añadir otros criterios, es que hay una diferencia significativa entre a las dos líneas de código?
self.get_query_set().filter(user__isnull=False, modelField=x)
self.get_query_set().filter(modelField=x).exclude(user__isnull=True)
¿Se considera una mejor práctica o son las mismas tanto en función como en rendimiento?
gracias. entonces es solo una cuestión de preferencia personal? Solo quería asegurarme de que no iba a hacer algo inexplicablemente estúpido. – Enrico
@Enrico: No realmente, depende de lo que quieras. Ver mi respuesta El rendimiento no importa en este caso, son dos métodos que sirven para diferentes propósitos. Para la generación de SQL, la documentación dice acerca de '.exclude()': * Varios parámetros se unen a través de Y en la instrucción SQL subyacente, y todo se incluye en un NOT(). * –
@Felix. Gracias. Supongo que mi pregunta principal, que podría haber comunicado con más claridad, fue sobre el rendimiento de ambos en django y finalmente en SQL. De su comentario de seguimiento, parece que uno podría funcionar mejor que el otro, pero principalmente basado en el SQL resultante. Sin embargo, al cambiar la segunda instrucción a '.exclude (user__isnull = True) .filter (modelField = x)', las dos declaraciones volverán a ser más o menos iguales. – Enrico