Filtro OR de Django
Aprenderemos con esta rápida y fácil explicación sobre cómo ejecutar filtros con una declaración OR
individualmente, y también veremos cómo ejecutamos los filtros con un objeto Q
en el queryset de Django.
Use el filtro para ejecutar la declaración OR
individualmente y con el objeto Q
en Django Queryset
En este ejemplo, usaremos la base de datos que creamos que se ha agregado con algunos datos y le mostraremos cómo se ve.
Creamos un ejemplo básico; crearemos una variable llamada posts
y guardaremos todos los datos dentro de esta variable. Ejecutaremos un filtro que nos permitirá crear una simple declaración OR
.
Primero, debemos seleccionar sobre qué queremos hacer una declaración O
, así que recopilemos todos los nombres de los estudiantes, comenzando con austin
o baldwin
.
Estamos usando el argumento surname__startswith
y pasándolo por apellido para extraer todos los registros de estudiantes que comienzan con los apellidos austin
y baldwin
.
Cuando ejecutamos el servidor, vemos que devolvió dos elementos.
Hemos visto un ejemplo básico con una declaración OR
, pero podríamos agregar otro filtro y más declaraciones OR
. Ahora trabajaremos en un ejemplo más del uso de una declaración OR
, pero esta vez estamos usando un objeto Q
.
Esta no es una demostración detallada de un objeto de cola, pero diremos que nos permite construir consultas más complejas utilizando objetos Q
. Le mostraremos un ejemplo de utilización de objetos Q
.
La instrucción del código es casi la misma, solo vamos a envolver todo alrededor de un objeto Q
, y después de |
operador, añadiremos otro objeto Q
. No necesitamos agregar Student.objects.filter()
nuevamente.
Deberíamos haber escrito esto primero y pasar el apellido al argumento surname__startswith
.
Avancemos y ejecutemos esta consulta, de modo que obtengamos los mismos resultados.
Si queremos extender esto, podemos seguir agregando a esta declaración OR
tantas veces como queramos. Agregamos el no ~Q
, que significa seleccionar a todos los estudiantes excepto donde el apellido comienza con baldwin
.
Ahora podemos ver que ya no se muestra todo baldwin
porque definimos ~
, que se usa para eliminar o no seleccionar un elemento de la base de datos.
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn