【问题标题】:Condition inside objects filter Django对象内的条件过滤 Django
【发布时间】:2020-11-19 13:10:29
【问题描述】:

我想知道是否可以像这样将条件放入查询中

 sample = Person.objects.filter(province=province, municipality=municipality, if barangay!=None: then 
 barangay ="value")

我遇到了同样的问题 link 但我不知道如何忽略查询中的空值。有没有高手可以帮帮我

【问题讨论】:

  • 您可以使用if... 子句
  • @ArakkalAbu 谢谢你的回复,你能给我更多的细节吗,我想你的意思是我必须把条件放在过滤器之外?

标签: python django post


【解决方案1】:

试试这个:

barangay_value = "value" if barangay != None else "some other value"

sample = Person.objects.filter(
    province=province, 
    municipality=municipality,
    barangay=barangay_value
)

【讨论】:

  • 是的,但我想要过滤器内的条件就像这样bene = Person.objects.filter(province=province, municipality=municipality,if barangay!=None else barangay ="value") 但它不起作用
  • 尝试将 if 表达式放入变量中。让我知道这个是否奏效!此外,请确保明确指出该值在 QuerySet 中指向的位置(例如 barangay= value)
  • 你的意思是这样吗? screenshot 但这不是我要找的:/
  • 感谢您的回复,但我的数据库中有值 screenshot 如果值为 none,则所有 barangays 都应该过滤,如果有值,它应该过滤那些选定的值
【解决方案2】:

您可以执行以下操作

sample = Person.objects.filter(province=province, municipality=municipality)
if barangay is not None:
   sample.filter(barangay =barangay)

由于 Django 查询是延迟评估的,因此只会生成一个查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-27
    • 2018-08-05
    • 2017-01-07
    • 2010-12-31
    • 1970-01-01
    • 2019-12-27
    • 1970-01-01
    • 2018-11-12
    相关资源
    最近更新 更多