У меня есть фильтры типа dict:
"filter1": "string",
"filter2": [
"A","B"
],
"filter3": "string",
"filter4": [
"C","D"
],
}
где filter1, filter2, filter3 filter4 - некоторые поля в моей модели.
Этот query_set = query_set.filter(**filters)
отлично работает для всех фильтров чей тип не является списком,
Но я хочу отфильтровать query_set как можно более чисто. Как применить фильтры, используя dict, который содержит как строковые, так и списковые значения?
PS: I знаю о __in и знаю, что я могу сделать что-то вроде
filter2_list = filters.get(filter2)
if filter2_list:
query_set = query_set.filter(filter2__in=filter2_list)
Но, 1. Я не хочу использовать операторы if-else 2. Я хочу иметь переменные Dynami c в аргументах фильтров и не хардкорные вроде filter2__in