Python 如何组合django日期字段和时间字段
我尝试了以下查询:Python 如何组合django日期字段和时间字段,python,django,Python,Django,我尝试了以下查询: start_date = DateField() strt_time = TimeField() obj=model.objects.annotate( datetimeobj=ExpressionWrapper(F('start_date') + F('strt_time'), output_field=DateTimeField() 它给出了以下错误: AttributeError:“decimal.decimal”对象没有属性“tzin
start_date = DateField()
strt_time = TimeField()
obj=model.objects.annotate(
datetimeobj=ExpressionWrapper(F('start_date') + F('strt_time'), output_field=DateTimeField()
它给出了以下错误:
AttributeError:“decimal.decimal”对象没有属性“tzinfo”
我也尝试过这个解决方案:
data=model.objects.annotate(datetime=datetime.combine('start_date','start_time'))
它给出了错误:
TypeError:combine()参数1必须是datetime.date,而不是str
谢谢。问题在于您的代码
data=model.objects.annotate(datetime=datetime.combine('start\u date','start\u time'))
将字符串传递给需要日期和时间的combine()
方法
要合并日期和时间,请使用语法为
datetime.combine(日期、时间)
因此,您必须按照以下步骤操作:
data=model.objects.annotate(datetime=datetime.combine(start_date,start_time))
问题出在您的代码
data=model.objects.annotate(datetime=datetime.combine('start\u date','start\u time'))
中,因为您正在将字符串传递给需要日期和时间的combine()
方法
要合并日期和时间,请使用语法为
datetime.combine(日期、时间)
因此,您必须按照以下步骤操作:
data=model.objects.annotate(datetime=datetime.combine(start_date,start_time))
为什么不创建一个
DateTimeField
?通过使用DateField()
可以“引入”特定字段已经解决的问题。为什么不创建DateTimeField
?通过使用DateField()
可以“引入”特定字段已经解决的问题,它给出了名称错误:名称“开始日期”未定义我认为您在代码中拼错了开始日期bcoz,其中您提到了strt\u date
,在您提到的其他地方start\u date
我尝试了上述解决方案,它给出了名称错误:名称“开始日期”未定义我认为您在代码中拼写错误了开始日期bcoz,其中一些地方您提到了strt\u date
,还有一些地方您提到了start\u date