Разница между title и title_icontains в фильтре модели django

чем отличается title от title_icontains в django ?

from .model import product
product.objects.filter(title='blah')
product.objects.filter(tite__icontains='blah')

Возможно, это title__icontains=… так с двумя последовательными подчеркиваниями (__). В таком случае вы используете __icontains поиск [Django-doc]. Как сказано в документации, это:

Тест содержания без учета регистра.

Таким образом, он ищет Product, где заголовок содержит blah. Например, fooblah, blahfoo, из fooblahbar. Это делается без учета регистра , поэтому продукты с названиями , FooBlah и BLAHfoo также будут сохранены.FooBlAHBAR

Первая форма ...filter(title='value') вернет все объекты, название которых будет точно соответствовать значению.

Вторая форма, правильно записанная как ...filter(title__icontains), вернет все объекты, чей заголовок содержит значение, но при этом будут совпадать любые буквы верхнего/нижнего регистра. Здесь i означает "игнорировать регистр".

tite__icontains - это поиск строки, но без учета регистра.

Вернуться на верх