尝试将日期和时间结合起来时间和收到的错误:
descriptor 'date' requires a 'datetime.datetime' object but received a 'datetime.date'
from datetime import date, datetime, time, timedelta
instance = Model.objects.get(pk=id)
datetime = datetime.combine(datetime.date(instance.mydate), datetime.time(instance.mytime))
编辑:
mydate和mytime存储在这里:
class Model(models.Model):
mydate = models.DateField(blank=True, null=True)
mytime = models.TimeField(blank=True, null=True)
编辑2:
我确实有这个,但正在寻找一线解决方案:
mydate = datetime.strptime(str(instance.mydate), '%Y-%m-%d')
mytime = datetime.strptime(str(instance.mytime), '%H:%M:%S')
datetime = datetime.combine(datetime.date(mydate), datetime.time(mytime))
答案 0 :(得分:2)
问题是您实际上是在尝试拨打datetime.datetime.date()
,您应该拨打datetime.date()
。我猜您还需要使用datetime.time()
代替datetime.datetime.time()
。
此外,根据documentation,datetime.date()
的参数是三个整数,表示日期的年,月和日。
你应该做 -
datetime = datetime.combine(date(instance.mydate.year, instance.mydate.month, instance.mydate.day), time(instance.mytime.hour, instance.mytime.minute, instance.mytime.second))
给出时间,达到你想要的准确度。作为一个例子我给second
,文件是here。