【问题标题】:Django db aggregation on timefield时间域上的 Django 数据库聚合
【发布时间】:2016-11-21 18:00:49
【问题描述】:

我在模型中有时间域。

class Model(models.Model):
    name = models.CharField(max_length=10)
    total_time = models.TimeField(blank=True, null=True)

我在这里创建了 2 条记录:

Model.objects.create(
    name='1',
    total_time=str(timedelta(seconds=0))
)
Model.objects.create(
    name='1',
    total_time=str(timedelta(seconds=100))
)

当我这样做的时候

records = Model.objects.filter(name='1')
for log in signal_logs:
    print(log.total_time)

signal_logs = signal_logs.aggregate(Sum('total_time'))
print('Total: ', signal_logs['total_time__sum'])

打印的值为:

00:00:00

00:01:40

总数:140

这不正确,总数必须是10000:01:40

【问题讨论】:

    标签: python django datetime django-models aggregate


    【解决方案1】:

    改用DurationField,它们支持聚合。

    【讨论】:

    • 我试过了,但仍然得到与 TimeField 相同的结果。
    • 你用的是什么版本的 Django?
    • Django 1.10 版本
    猜你喜欢
    • 1970-01-01
    • 2017-03-07
    • 2021-03-02
    • 1970-01-01
    • 2018-03-08
    • 2021-03-17
    • 1970-01-01
    • 2021-04-02
    • 2020-01-20
    相关资源
    最近更新 更多