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'))