-
Подскажите, плиз.Нужно реализовать по таблице фильтр по нескольким полям. Но в зависимости от неких условий, которые выбираются в 4-х выпадающих списках (один из которых формируется динамически), одном чекбоксе и вводимом диапазоне значений. Есть ли возможность (как макроподстановка в FoxPro, например) сформировать команду в виде текстовой строки, а потом эту команду выполнить? Или какие-то другие варианты посоветуйте.
-
Джанговский ORM принимает фильтры в виде питоньих keyword-аргументов. В Питоне они (аргументы) изоморфны просто dict'у: можно из dict'а сделать keyword-аргументы и обратно. Соответственно, можно делать так:
lookup = { 'name__startswith': form.cleaned_data['name'], } if form.cleaned_data['check_year']: lookup['year'] = form.cleaned_data['year'] Model.objects.filter(**lookup)Вот эта
**lookupкак раз и означает "использовать dict lookup в качестве keyword-аргументов. -
Уловил. Спасибо большое.
-
Читаю и удивляюсь, как Иван умудрился понять вопрос, да еще и его понимание совпало с пониманием автора.
-
Я два года работал в тех. поддержке интернет-провайдера :-)
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

