gpt4 book ai didi

python - Django admin 额外字段 Sum() TimeField

转载 作者:行者123 更新时间:2023-11-28 17:51:35 24 4
gpt4 key购买 nike

在 Django Admin 中,我想显示所有操作持续时间的总和。我用一个额外的字段解决了它。但是总和

01:30:00 小时03:45:00

求和为 47500,0,因为求和将时间转换为整数。

我像这里描述的那样更改了我的 admin.py: django-admin: Add extra row with totals

class MyChangeList(ChangeList):

def get_results(self, *args, **kwargs):
super(MyChangeList, self).get_results(*args, **kwargs)
q = self.result_list.aggregate(status_sum=Sum('duration'))
self.status_count = q['action_sum']

...

class ActionAdmin(admin.ModelAdmin):

def get_changelist(self, request):
return MyChangeList

class Meta:
model = Status

list_display = ('name', 'duration')

Duration 在 modles.py 中定义为 TimeField:

class Action (models.Model):

duration = models.TimeField()

有人知道如何更改 MyChangeList 中的 aggregate() 函数吗?我想我必须将时间值更改为 float 或整数,求和然后将其转换回来。

有什么建议吗?

非常感谢。

最佳答案

我想您正在使用 MySQL。它有一个 old bug关于总结时间(我不知道现在是否修复)。

您可以以分钟为单位存储持续时间(如果可以,也可以存储 15 分钟)。或者你可以使用 django-durationfield .

关于python - Django admin 额外字段 Sum() TimeField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8879292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com