Оптимизация динамического фильтра
У меня есть эта функция
def get_documents_by_metadata(self, params):
filters = {}
result_filtered = None
for index, key in enumerate(params.keys()):
filters["metadocument__meta_config__field"] = key
filters["metadocument__value__contains"] = params.get(key)
if index == 0:
result_filtered = super().get_queryset().filter(**filters)
else:
result_filtered = result_filtered.filter(**filters)
return result_filtered
Мне нужно фильтровать по динамическим значениям (метаданные KEY/VALUE, зарегистрированные в моей БД), я не могу предсказать, какие ключи я получу.
Моя первая идея - фильтровать и снова фильтровать результат, но я уверен, что существует лучший способ.
Ty!