web-dev-qa-db-fra.com

Utilisez "contient" et "iexact" dans la même requête dans DJANGO

Comment utiliser les recherches de champs contains et iexact dans la même requête dans Django?

Comme ça ..

casas = Casa.objects.filter(nome_fantasia__contains__iexact='green')
25
rayashi

Si vous avez besoin de contains insensible à la casse, utilisez icontains :

casas = Casa.objects.filter(nome_fantasia__icontains = 'green')

Qui est converti en

... WHERE nome_fantasia ILIKE '%green%'

en SQL.

53
agf

Honnêtement, vous n'en avez pas besoin. Les deux jeux de résultats se chevauchent. Si vous vouliez AND, utilisez simplement le plus restrictif: __iexact. si vous voulez OR utilisez __contains

Juste pour répondre à votre question, vous pouvez faire quelque chose comme ci-dessous (notez que c'est un AND)

casas = Casa.objects.filter(nome_fantasia__contains='green', nome_fantasia__iexact='green')
8