How to filter objects by ignoring upper and lower case letter django

Bakhtiyar Bekbergen picture Bakhtiyar Bekbergen · Jul 12, 2017 · Viewed 7.8k times · Source

recently I started learning django and I have several questions. And one of them has relationship with __icontains.

Company.objects.filter(name__icontains=receiver_company_name)

And let's assume that I have one company which called for example Dota-2, and when I search in my db this company by typing "D", it's return for me Dota-2. And my question will be about, if my company "Dota-2" it's saved in db like this "Dota-2", and when I trying to search like this lowercase "d", it's return me empty array. How to make name_icontains search by ignoring lower and uppercase letter?

Answer

Exprator picture Exprator · Jul 12, 2017
Blog.objects.get(name__iexact=receiver_company_name)

you can use iexact which takes all the arguments ignoring upper and lower case

or you can use

Entry.objects.filter(name__istartswith=receiver_company_name)