Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将保存的日期字段与新的未保存对象进行比较_Python_Django_Django Models - Fatal编程技术网

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

Python 将保存的日期字段与新的未保存对象进行比较,python,django,django-models,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()

如果日期相同,我会更新记录

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

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。调试之后,我看到新的_object.date是一个str,而不是我认为应该是的日期类型

我的问题是,如何准备新的_对象,使其具有正确类型的日期字段,而无需将其保存到数据库中,也无需手动传递铸造日期

问候

更新:

class TheModel(models.Model):
    date = models.DateField()
    a = models.IntegerField()
    b = models.IntegerField()
    c = models.IntegerField()
相应地,对DateField或DateTimeField使用datetime.date或datetime.datetime:

import datetime
new_object = TheModel(date=datetime.date(2014, 12, 15))
如果输入时日期为字符串,请使用strtime


请提供模型的代码。模型的代码不相关。date fieldFYI对象中只有几个int字段。create已将对象保存到db,无需调用save。您需要实例化一个模型实例,而不是稍后在实例上使用create和callsave。感谢您对Aamir的澄清。但是,无论如何,我是否需要保存对象才能将日期字段用作日期时间?如果将日期字段或日期时间字段定义为字符串,则在保存并再次检索它时,将得到一个日期时间对象。我想将日期字段定义为字符串,然后自动将其转换为日期时间。在不保存和使用datetime构造函数的情况下,这是可能的吗?
new_object = TheModel(
    date=datetime.datetime.strptime('2014-12-15', '%Y-%m-%d'))