3 ms·
I actually messed it up a little because I'm not sure you can mix positional and kwargs in filter, and you definitely can't use kwargs first. Still, the idea is
by DangitBobby 3y ago
I actually messed it up a little because I'm not sure you can mix positional and kwargs in filter, and you definitely can't use kwargs first. Still, the idea is there.
In JS, theoretically you could design an API like
.where({column_a: 1}, Q(column_b__isnull=True).or({column_b: 2}))
Which really isn't bad IMO
- squeaky-clean 3y agoIt's been a bit since I've used Django, but I believe you can just swap the order so the kwarg comes last. filter( Q(column_b__isnull=True)|Q(column_b='value2'), column_a='value1', ) Or just turn it into another Q .filter(Q(column_a='value1'), Q(column_b__isnull=True)|Q(column_b='value2'))
- Izkata 3y agoThe docs show both of those as working examples, but Q supports using & for "and", and can be combined in any way - you could also do this: .filter(Q(column_a='value1') & (Q(column_b__isnull=True) | Q(column_b='value2')))