User.objects.filter(name__in=["A", "AB", "a", "ab", "Ab"])
Это пример использования поиска поля in в Django.
in
Django
Но я хочу знать, что здесь есть какой-то трюк использования in без учета регистра, например icontains?
icontains
Спасибо
Согласно совпадению списка без учета регистра для запроса Django другого решения нет, кроме iregex lookup
iregex
Ответы других превосходны.
Я искал другой способ, который использует Функция понижения
lower_list = map(lambda x:x.lower(), ["A", "AB", "a", "ab", "Ab"]) User.objects.annotate(name_lower=Lower('name').filter(name_lower__in=lower_list)
Это просто другой способ.Я думаю, что ответы других людей близки к хорошему ответу.
Для работы без учета регистра вы можете использовать iregex
User.objects.filter(name__iregex=r'(A|AB|a|ab|Ab)')
Ref: https://docs.djangoproject.com/en/dev/ref/models/querysets/#iregex
Обновление: Вы можете сделать свой поиск.Получите помощь от https://docs.djangoproject.com/en/dev/ref/models/lookups/