gpt4 book ai didi

mysql - 如果字段存在,则 Django 过滤查询集

转载 作者:行者123 更新时间:2023-11-29 06:35:29 24 4
gpt4 key购买 nike

在我的自定义管理器中,如果只有这个字段有值,我想过滤查询集:

class PropertyManager(gis_models.GeoManager):
def get_queryset(self):
return super(PropertyManager,self).get_queryset().filter(active=True, valid_until__gte = datetime.now())

问题是 valid_until 字段不是必需的,可能为空。所以我希望我的经理过滤对象 (valid_until__gte = datetime.now()) 仅当在对象创建期间设置了该字段的值时。如果此值为空,我只希望经理使用第一个过滤器 (active=True)。

是否可以在 Django 中制作这样的原始 SQL IF 语句?我正在使用 Mysql 数据库。

最佳答案

您可以使用 Q object结合您的查找。

您可以进行过滤以查找具有 valid_date > now() 或 valid_date=None 的对象

.filter(Q(valid_until__gte = datetime.now()) | Q(valid_until=None))

关于mysql - 如果字段存在,则 Django 过滤查询集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25119028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com