将保存的日期字段与新的未保存对象进行比较

时间:2014-12-15 14:37:36

标签: python django django-models

如果日期相同,我正在试图更新记录。

为此,我使用以下方法检索最后一条记录:

saved_object = TheModel.objects.latest("date")
new_object  = TheModel.objects.create(date="2014-12-15")

然后我使用以下方式比较日期:

if saved_object.date == new_object.date:
    doStuffWithTheSavedObject()
    saved_object.save() # update
else:
    new_object.save() # insert new one

查看数据库,我看到日期相同,因此if语句返回false。在调试它之后,我看到new_object.date是一个str而不是我认为应该的日期类型。

我的问题是,如何准备new_object,使其具有正确类型的日期字段,而不将其保存到数据库中,也不会手动将其传递给它。

此致

更新

class TheModel(models.Model):
    date = models.DateField()
    a = models.IntegerField()
    b = models.IntegerField()
    c = models.IntegerField()

1 个答案:

答案 0 :(得分:0)

使用datetime.datedatetime.datetime(相应地为DateField或DateTimeField):

import datetime
new_object = TheModel(date=datetime.date(2014, 12, 15))

如果您在输入中将日期作为字符串,请使用strptime

new_object = TheModel(
    date=datetime.datetime.strptime('2014-12-15', '%Y-%m-%d'))
相关问题