2013-04-10 50 views
0

我正在使用匯總和總和來確定每個月工作的小時數。我有它的工作,但「小時」變量總是有額外的內容!將彙總結果轉換爲字符串

我應該補充說,我是django的新手,我從這裏獲得了大部分代碼(Django beginner: How to query in django ORM to calculate fields based on dates)。

我的代碼:

hours = "" 
work_data = "" 
month_data = "" 

for month in range(1,13): 
    entries_per_month = Mydata.objects.filter(myTimePeriod__month=month).filter(myResource="James") 
    hours = str(entries_per_month.aggregate(value=Sum('myHoursLogged'))) 
    month_data = month_data + "'" + str(month) + "'," 
    work_data = work_data + hours + "," 

我看work_data結果:

work_data 

這給我的{'value': Decimal('136.80')},{'value': Decimal('146.40')}結果,

我需要它的格式爲:136.80, 146.40(這是圖表庫所需的格式)。我曾嘗試使用str()來轉換它,但它似乎不起作用在這種情況下。

回答

0

str在這裏沒用,因爲你的數據是一個字典列表。你只需要處理,並得到結果:

hours = ','.join(str(v['value']) for v in entries_per_month) 
+0

謝謝,但我不明白這一點。我會在哪裏插入這一行?我應該使用什麼「價值」? – James 2013-04-10 12:40:57

+1

你把它放在上面的代碼中,代替具有'str'的​​行。我不知道你的意思是說「我應該用什麼'價值'」。請注意,這是相當基本的Python,如果你在這裏掙扎,你應該做一個Python教程。 – 2013-04-10 12:42:12