3

我正在開發一個開源的Django時間跟蹤應用程序,Djime,我試圖想出一個更有效的方式來生成統計信息。到目前爲止,我們已經有一些相當冗長的程序代碼,將得到所有的時間片一段時間,並在一個巨大的嵌套列表/字典吃大鍋飯整理它們。QuerySet的高效周統計

我希望做的是建立一個更高效的系統 - 一個對象或函數,將採取時間片的查詢集和用戶,任務和/或天整理他們。

我們的模型看起來像這樣(簡化):

class TimeSlice(models.Model): 
    task = models.ForeignKey(Task) 
    user = models.ForeignKey(User) 
    begin = models.DateTimeField(default=datetime.datetime.now) 
    duration = models.PositiveIntegerField(null=True, blank=True) # Num. of seconds 
    note = models.TextField(null=True, blank=True) 

回答

0

聽起來像是你想這是在Django 1.1傳來的聚合功能。它已經在中繼線的最近結賬中可用。

一個解釋見here

+0

我不知道這將是做到這一點的好方法。據我所知,每個聚合函數將導致對我們已經在QuerySet中有數據的另一個查詢。我寧願擁有比更多數據庫請求更多的Python代碼,因爲比數據庫服務器更容易擴展Python前端。 – mikl 2009-06-12 11:30:28