with tutorial pelicula learning how descargar cantante python django

python - tutorial - ¿Cómo uso AND en un filtro de Django?



django windows (3)

Por pura concisión, simplemente mencionemos el método del objeto Q :

from django.db.models import Q criterion1 = Q(question__contains="software") criterion2 = Q(question__contains="java") q = Question.objects.filter(criterion1 & criterion2)

Tenga en cuenta que las otras respuestas aquí son más simples y mejor adaptadas para su caso de uso, pero si alguien con un problema similar pero un poco más complejo (como la necesidad de "no" o "o") ve esto, es bueno tener la referencia aquí.

¿Cómo creo un filtro "AND" para recuperar objetos en Django? por ejemplo, me gustaría recuperar una fila que tiene una combinación de dos palabras en un solo campo.

Por ejemplo, la siguiente consulta SQL hace exactamente eso cuando lo ejecuto en la base de datos mysql:

select * from myapp_question where ((question like ''%software%'') and (question like ''%java%''))

¿Cómo se logra esto en Django usando filtros?


Puede encadenar expresiones de filtro en Django:

q = Question.objects.filter(question__contains=''software'').filter(question__contains=''java'')

Puede encontrar más información en los documentos de Django en " Chaining Filters ".


mymodel.objects.filter(first_name__icontains="Foo", first_name__icontains="Bar")

Actualización : Hace mucho tiempo que escribí esta respuesta y realicé algunos django, pero estoy seguro de que hoy en día lo mejor es utilizar el método del objeto Q como lo muestra David Berger aquí: .com/a/770078/63097