Django: OR запросы с динамическими именами полей

У меня есть значение, и я хочу получить все экземпляры, имеющие значение в одном или нескольких столбцах. И чтобы сделать это немного сложнее, список полей является динамическим.

Итак, что у меня есть: ['field1', 'field2', 'field3', ...]

Что мне нужно это: Q(field1='value') | Q(field2='value') | Q(field3='value') | ...

Как я могу получить это?

1 ответ

Решение

Использование ** расширение словаря в kw-args:

q = Q()
for field in fields:
    q = q | Q(**{field: "value"})

(как Q() дать Q который "ничего не делает", насколько я могу судить)

Другие вопросы по тегам