Я пытаюсь отфильтровать набор запросов на основе, если одно из его имен полей находится в списке строчных значений. Проблема в том, что некоторые из этих значений полей имеют заглавные буквы, поэтому я не могу сделать
all_listings = all_listings.objects.filter(make__name__in=makes)
Есть ли способ сказать что-то вроде
all_listings = all_listings.objects.filter(make__name__lower__in=makes)
2 ответа
Вы можете попробовать использовать Lower func
from django.db.models.functions import Lower
all_listings = all_listings.objects.annotate(name_lower=Lower('make__name')).filter(name_lower__in=makes)
Ты можешь сделать
all_listings = all_listings.objects.filter(make__name__iregex=r'(' + '|'.join(makes) + ')')
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.