def SumIf(value, expression, **extra): output_field = extra.pop('output_field', None) if output_field is None: output_field = IntegerField() return Sum( Case( When(expression, then=value, **extra), default=output_field.to_python(0), output_field=output_field, ))