Different between title and title_icontains in model filter django
what is diffrent between title and title_icontains in django ?
from .model import product
product.objects.filter(title='blah')
product.objects.filter(tite__icontains='blah')
Probably it is title__icontains=…
so with two consecutive underscores (__
). In that case you make use of the __icontains
lookup [Django-doc]. As the documentation says, this is a:
Case-insensitive containment test.
It thus looks for Product
s where the title contains blah
. For example fooblah
, blahfoo
, of fooblahbar
. It does this in a case insensitive manner, so products with FooBlah
, BLAHfoo
and FooBlAHBAR
as title will also be retained.
The first form ...filter(title='value')
will return all objects whose title will match exactly the value.
And the second form, correctly written as ...filter(title__icontains)
will return all objects whose title contains the value, but any upper/lower case letters will match.
The i
here means "ignore case".
tite__icontains
is to look fo the string, but with case-insensitive.