简体   繁体   English

描述符“日期”需要一个“ datetime.datetime”对象,但收到一个“ datetime.date”

[英]descriptor 'date' requires a 'datetime.datetime' object but received a 'datetime.date'

Trying to combine date & time and received error: 尝试合并日期和时间以及收到的错误:

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

Edit: 编辑:

mydate and mytime are stored here: mydate和mytime存储在这里:

class Model(models.Model):
    mydate = models.DateField(blank=True, null=True)
    mytime = models.TimeField(blank=True, null=True)

Edit 2: 编辑2:

I did have this in place but was looking for a 1 line solution: 我确实有这个地方,但是正在寻找1行解决方案:

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

The issue is that you are actually trying to call datetime.datetime.date() , you should be calling datetime.date() . 问题是您实际上是在尝试调用datetime.datetime.date() ,而您应该在调用datetime.date() I am guessing you need to use datetime.time() instead of datetime.datetime.time() also. 我猜您还需要使用datetime.time()而不是datetime.datetime.time()

Also, according to documentation , the parameters to datetime.date() are three integers indicating the year, month and day of the date. 另外,根据文档datetime.date()的参数是三个整数,指示日期的年,月和日。

You should do - 你应该做 -

datetime = datetime.combine(date(instance.mydate.year, instance.mydate.month, instance.mydate.day), time(instance.mytime.hour, instance.mytime.minute, instance.mytime.second))

Give the time, upto the accuracy you want, As an example I gave till second , documentation for that is here . 花费时间,达到您想要的精度,作为second例子, 这里提供了文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 描述符“日期”需要一个“ datetime.datetime”对象,但接收到一个“ int”,但这是一个日期吗? - Descriptor 'date' requires a 'datetime.datetime' object but received a 'int', but it is a date? 描述符“日期”需要一个“日期时间.日期时间”object 但收到一个“系列”(Python) - Descriptor 'date' requires a 'datetime.datetime' object but received a 'Series' (Python) 排除“描述符'日期'需要'datetime.datetime'对象,但收到'int'” - Troubleshooting “descriptor 'date' requires a 'datetime.datetime' object but received a 'int'” TypeError: 描述符 'date' 需要一个 'datetime.datetime' 对象但收到了一个 'int' - TypeError: descriptor 'date' requires a 'datetime.datetime' object but received a 'int' 描述符'date'需要'datetime.datetime'对象,但收到'unicode' - Descriptor 'date' requires a 'datetime.datetime' object but received a 'unicode' TypeError:描述符“ strftime”需要一个“ datetime.date”对象,但收到一个“ str” - TypeError: descriptor 'strftime' requires a 'datetime.date' object but received a 'str' TypeError:描述符'strftime'需要'datetime.date'对象但收到'Text' - TypeError: descriptor 'strftime' requires a 'datetime.date' object but received a 'Text' 类型错误:描述符“isoformat”需要一个“datetime.date”object 但收到一个“str” - TypeError: descriptor 'isoformat' requires a 'datetime.date' object but received a 'str' TypeError: 'datetime.datetime' 对象的描述符 'date' 不适用于 'datetime.date' object - TypeError: descriptor 'date' for 'datetime.datetime' objects doesn't apply to a 'datetime.date' object TypeError:描述符“日期”需要一个“日期时间.日期时间”object,但在从非英语翻译成英语时收到一个“int” - TypeError: descriptor 'date' requires a 'datetime.datetime' object but received a 'int' when translation from Non english to english
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM