2012-01-16 53 views
3

在Django Admin我想顯示所有操作持續時間的總和。我解決了它額外的領域。但Django管理員額外字段總和()TimeField

01:30:00^h 3時45分00秒^ h

的總和,因爲總和轉換倍整數相加,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') 

時間是defienes如TimeField在modles.py:

class Action (models.Model): 

    duration = models.TimeField() 

有人知道如何更改彙總()函數MyChangeList? 我想我必須將時間值更改爲浮點或整數,然後將其轉換回來。

有什麼建議嗎?

非常感謝。

回答

2

我想你正在使用MySQL。總結時間有一個old bug(我不知道現在是否已經修復)。

您可以以分鐘爲單位存儲持續時間(如果沒問題,也可以存儲15分鐘)。或者您可以使用django-durationfield

+0

我正在使用Mysql。我認爲這是你提到的mysql的錯誤。 非常感謝,我安裝了** django-durationfield **,並將MyChangeList中的最後兩行更改爲: class MyChangeList(ChangeList): ... q = self.result_list.aggregate(status_sum=Sum('duration')) self.status_count = timedelta(microseconds=q['action_sum']) 現在它工作;-) – surfi 2012-01-16 12:36:32

相關問題