Django: OR queries with dynamic field names

I have a value and want all instances to have a value in one or more columns. And to make it a little more complicated, the list of fields is dynamic.

So, I have a: ['field1', 'field2', 'field3', ...]

I need: Q(field1='value') | Q(field2='value') | Q(field3='value') | ...

How can i get this?

+3
source share
1 answer

Use the **dictionary-to-kw-args extension :

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

(as Q()gives a Q, which β€œdoes nothing”, as far as I can tell)

+7
source

All Articles