Django过滤查询解决方案

时间:2013-03-28 20:46:00

标签: python django filter

我需要为多个属性过滤空字段和空白字段。到目前为止,我发现有效的解决方案是:

avaluos=Avaluo.objects.filter(Q(Estatus='CONCLUIDO',Pagado=False,Factura__isnull=True)
|Q(Estatus='CONCLUIDO',Factura__isnull=True,Pagado__isnull=True)
|Q(Estatus='CONCLUIDO',Factura__exact='',Pagado__isnull=True)
|Q(Estatus= 'CONCLUIDO',Factura__exact='',Pagado=False))

但我很确定这不是最好的选择。 有没有更有效的方法来做到这一点?

1 个答案:

答案 0 :(得分:2)

我认为如果你链接你的条款,它会更具可读性。

avaluos= ( Avaluo.objects
           .filter(Estatus='CONCLUIDO')
           .filter(Q(Factura='')|Q(Factura__isnull=True))
           .filter(Q(Pagado=False)|Q(Pagado__isnull=True)) )