如何比较 Django 中的两个日期时间字段

Piy*_*are 7 django

我已用于datetime.datetime.now()存储datefield在我的模型中,该模型另存为2016-06-27 15:21:17.248951+05:30. 现在我想将datefielddatetime从前端获取的值进行比较,例如Thu May 26 2016 00:00:00 GMT 0530 (IST). Django 应该如何查询模型来比较两个日期字段?

# models.py

datefield = models.DateTimeField(blank=True,null=True)
Run Code Online (Sandbox Code Playgroud)

我曾尝试datefield通过使用Python 的函数split()remove()函数来转换从前端获取,以将其创建为2016-06-27 13:25:35.

但仍然没有解决方案,Null甚至我将这样的相同日期值 (2016-06-27 13:25:35) 值与此 (2016-06-27 12:36:34.898593+00) 值进行比较,作为两者中的日期值是一样的。

我已经使用简单的 Django 查询进行了检查,如下所示:

company_details.objects.filter(datefield=datefield).only('par1','par2',...)
Run Code Online (Sandbox Code Playgroud)

C14*_*14L 2

将前端的日期转换为 ISO 格式(如 )后2016-06-27 13:25:35,您可以使用它来通过以下之一查询模型

Model.objects.filter(date_created__startswith=today)
Model.objects.filter(date_created__contains=today)
Run Code Online (Sandbox Code Playgroud)

如果您只想过滤特定日期(例如 ),它也适用2016-06-27

Model.objects.filter(date_created__startswith=date(2016, 6, 27))
Run Code Online (Sandbox Code Playgroud)

要解析从前端获取的日期字符串,有两种选择。

如果您的日期字符串格式正确,您可以简单地解析它,例如datestring.strftime('%Y-%m-%d %H:%M:%S')获取一个datetime()对象。

如果您的日期字符串不可靠并且可能以您无法预测的不同方式格式化,我建议使用DateUtil。例如,它带有一个解析器,会尝试将任何字符串转换为日期时间

>>> from dateutil.parser import parse
>>> parse("Today is January 1, 2047 at 8:21:00AM", fuzzy_with_tokens=True)
(datetime.datetime(2011, 1, 1, 8, 21), (u'Today is ', u' ', u'at '))
Run Code Online (Sandbox Code Playgroud)