Сделать запрос к модели Django нечувствительным к регистру символов
Я хотел бы искать пользователей по их электронной почте, не беспокоясь о заглавных буквах.
Как бы мне это сделать? Я пытался
customer = Customer.objects.get(email__lower="test@gmail.com")
и получил эту ошибку.
django.core.exceptions.FieldError: Unsupported lookup 'lower' for EmailField or join on the field not permitted.
Вы можете работать с __iexact
поиском [Django-doc]:
customer = Customer.objects.get(email__iexact='test@gmail.com')
Вопреки распространенному мнению, вызов строчной буквы над двумя элементами не проверяет, совпадают ли эти два элемента без учета регистра. Некоторые символы не имеют вариантов нижнего/верхнего регистра, например ß [wiki]. Чтобы определить, совпадают ли две строки без учета регистра, необходимо применить складывание регистров [wiki].