如何在django ORM中将日期字段与None进行比较?

问题描述 投票:0回答:1

我有一个带有日期字段的模型。

我正在尝试通过传递日期对象或空值来查询模型。

根据ORM查询中提供的输入,查询应以不同的方式表现。

我将两个变量传递给ORM查询st_dateexp_dateexp_date有时可以为None。

如果exp_date中有某些值,我需要查询模型并获取scheduled_end_date大于提供的exp_date的所有记录。如果不是,则根本不考虑过滤器。

models.py:

class DtModel(models.Model):
    scheduled_start_date = DateField()
    scheduled_end_date = DateField()

ORM查询:

st_date="2020-05-01"
exp_date=None
DtModel.objects.filter(scheduled_start_date__gte=st_date, scheduled_end_date__lte=exp_date)

[试图比较exp_dateNone时,当date field为空时抛出错误?

ValueError:不能将None用作查询值

python django django-models django-views django-orm
1个回答
0
投票

为什么要查询空值...如果“无”表示您要过滤x > date,请改为使用x > date and < date作为大日期。

if not exp_date:
  st_date="2099-01-01"
© www.soinside.com 2019 - 2024. All rights reserved.