2013-10-25 319 views
0

我有一個函數,它可以計算數據庫中每年的數據總和(它不是一個簡單的總和,每次都會增加一個數字)。它是在視圖中計算的,我需要將它們傳遞給模板。我將它存儲在字典portfolio_dict[year] += amountdjango在不影響數據庫的情況下創建對象

{'2013': Decimal('92.96892879384746351465539182'), '2012': Decimal('71.48765907571338816005401399')} 

但我需要一些額外的數據要發送,以及。比方說:

date:date 
amount:Decimal 
year:string 

我知道這聽起來有點愚蠢,有一個年份和日期。我用年份作爲索引。如何將這些數據傳遞給我的當前字典的模板/添加日期? 但現在,我一直有模型和我傳遞了模型實例的列表。但現在我不需要將這些數據存儲在數據庫中,所以我不想創建模型。 如果我不希望它在數據庫中,我在哪裏可以在django中創建新類? 或者我應該使用集合還是數據結構?

+0

你需要以某種方式存儲它們或沒有問題計算每個視圖 – binboavetonik

+1

告訴我們你的看法和模板 – lalo

回答

1

只有django.db.Model實例存儲在數據庫中(並且只有在您明確要求的情況下)。否則,這只是普通的老Python,你可以按你認爲合適的方式創建和使用你自己的類。

但不管怎麼說:如果你需要的是一個年建立索引的集合(日期,金額)的物品,然後類型的字典字典是不夠的:

{ 
    '2013': { 
     'amount': Decimal('92.96892879384746351465539182'), 
     'date': datetime.date(2013, 10, 25) 
     }, 
    # etc 
} 

或者,如果你需要一個以上的(量,日期)每年,一個列表或字典的字典:

{ 
    '2013': [ 
     { 
     'amount': Decimal('92.96892879384746351465539182'), 
     'date': datetime.date(2013, 10, 25) 
     }, 
     { 
     'amount': Decimal('29.9689287'), 
     'date': datetime.date(2013, 10, 21) 
     }, 
    ], 

    # etc 
} 

事實上,正確的結構取決於你將如何使用數據。

相關問題