Задать вопрос

Как сделать фильтр в django с использованием словаря и iexact?

Здравствуйте, каким образом возможно сделать фильтр с использованием регистронезависимого вхождения и некого словаря из request.GET?
Тоесть у меня есть некая форма, которая строится по модели forms.ModelForm. В результате получения я формирую словарь. и использую его. Код привожу ниже:
filter_map = {}
    def set_if_not_none(mapping, key, value):
        if value is not None and value is not '' and key != 'order_by':
            mapping[key] = value
    for req_key, req_value in dict(request.GET).items():
        set_if_not_none(filter_map,req_key,req_value[0])
    debtors_list = Debtors.objects.filter(**filter_map).order_by(ordering)


Это хорошо работает только когда поля указаны точно, но мне нужно чтобы учитывалось не полное совпадение, а регистронезависимое вхождение.
  • Вопрос задан
  • 562 просмотра
Подписаться 2 Простой Комментировать
Решения вопроса 1
crazyzubr
@crazyzubr
Python backend-developer
filter_map = {}
def set_if_not_none(mapping, key, value):
    if value is not None and value is not '' and key != 'order_by':
        mapping['{}__iexact'.format(key)] = value
for req_key, req_value in dict(request.GET).items():
    set_if_not_none(filter_map,req_key,req_value[0])
debtors_list = Debtors.objects.filter(**filter_map).order_by(ordering)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы