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
filter( Q(column_b__isnull=True)|Q(column_b='value2'), column_a='value1', )
.filter(Q(column_a='value1'), Q(column_b__isnull=True)|Q(column_b='value2'))
.filter(Q(column_a='value1') & (Q(column_b__isnull=True) | Q(column_b='value2')))
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