【发布时间】:2012-02-11 08:26:37
【问题描述】:
在 Django Admin 中,我想显示所有操作持续时间的总和。我用一个额外的字段解决了它。但总和
01:30:00 小时 03:45:00 小时
求和为 47500,0,因为 sum 将时间转换为整数。
我更改了我的 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() 函数吗? 我想我必须将时间值更改为浮点数或整数,求和然后将其转换回来。
有什么建议吗?
非常感谢。
【问题讨论】:
标签: python django time django-admin sum