【发布时间】:2018-03-01 21:51:07
【问题描述】:
我想用 Django 1.11 注释旧 MySQL DB 上的 DateTime 和 Integer(秒)之间的差异(因此没有机会将 IntegerField 更改为 DurationField)
Report(Model):
# time the report was sent
time = DateTimeField()
# seconds since the last reboot
uptime = IntegerField()
MyModel.objects.all().annotate(
last_report=Max(time),
last_reboot=ExpressionWrapper(F('last_report') - F('uptime')), output_field=DateTimeField())
)
如果uptime 是 DurationField(),这将起作用,但不适用于整数。所以我尝试将秒转换为时间增量
last_reboot=ExpressionWrapper(
F('last_report') - F(timezone.timedelta(seconds=1)*F('uptime')),
output_field=DateTimeField()
)
这给了我
AttributeError at ...
'CombinedExpression' 对象没有属性'split'
有没有办法在查询表达式中使用 DateTimeField() 和 IntegerField() 进行计算?
【问题讨论】:
标签: python django django-models django-queryset