我想进行搜索,但我需要提供状态为已取消或已修改的寄存器。
我认为这会起作用,但它没有
citasotras = citas_agendarcita.objects.filter(cita_agendar_status="Modificada" or "",citas_tipodepaciente="mediexcel")
答案 0 :(得分:4)
在您的示例中,表达式"Modificada" or ""
的计算结果为"Modificada"
。
>>> "Modificada" or ""
'Modificada'
因此,您的示例就好像您只是:
citasotras = citas_agendarcita.objects.filter(cita_agendar_status="Modificada", citas_tipodepaciente="mediexcel")
您想要cita_agendar_status
等于列表["Modificada", ""]
中任何项目的任何对象。您可以使用__in
执行此操作:
citasotras = citas_agendarcita.objects.filter(cita_agendar_status__in=["Modificada", ""] ,citas_tipodepaciente="mediexcel")
有关详细信息,请参阅Django docs。
答案 1 :(得分:1)
对于AND / OR条件Q objects可以使用:
citas_agendarcita.objects.filter(Q(cita_agendar_status="Modificada")|Q(cita_agendar_status=""), \
citas_tipodepaciente="mediexcel")