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