from django.db.models.expressions import F def __floordiv__(self, other): return self._combine(other, '||', False) F.__floordiv__ = __floordiv__ class CF(F): """ A coalesced expression representing the value of the given field. """ def __init__(self, name, default=''): super(CF, self).__init__(name) self.default = default def evaluate(self, *args, **kwargs): res = super(CF, self).evaluate(*args, **kwargs) return 'COALESCE(%s, %%s)' % res[0], res[1] + (self.default,)