如果日期相同,我正在试图更新记录。
为此,我使用以下方法检索最后一条记录:
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()
答案 0 :(得分:0)
使用datetime.date
或datetime.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'))