2012-10-16 84 views
0

在模板頁面上呈現每月統計信息的最佳方式是什麼?Django模板系統和幾個month_list

我已經開始使用最初爲模板而設計的列表,但在切換到字典之後,我已經能夠更順利地完成相同的任務。麻煩的是,根據定義,字典沒有排序。然後,如果我iteritems()字典我不會得到一個乾淨的結果,但更多的東西一樣

('Feb', 'Dec', 'Oct' ...) 

我應該改變我的dictionnary成元組的列表處理之前的模板或者是有辦法使放入系統具有模板django模板系統高級知識的數據?

我的字典構造這樣的:

{'mnth_subscription': {'cummu_sbcr_mthl': {'Mar': 0, 'Feb': 0, 'Aug': 0, 'Sep': 0, 'Apr': 0, 'Jun': 0, 'Jul': 0, 'Jan': 0, 'May': 0, 'Nov': 2221, 'Dec': 2221, 'Oct': 2221}, 'monthly_perc': {'Mar': 0, 'Feb': 0, 'Aug': 0, 'Sep': 0, 'Apr': 0, 'Jun': 0, 'Jul': 0, 'Jan': 0, 'May': 0, 'Nov': -100, 'Dec': 0, 'Oct': 100}, 'cummu_sbcr_perc': {'Mar': 0, 'Feb': 0, 'Aug': 0, 'Sep': 0, 'Apr': 0, 'Jun': 0, 'Jul': 0, 'Jan': 0, 'May': 0, 'Nov': 100, 'Dec': 100, 'Oct': 100}, 'monthly_subscription': {'Mar': 0, 'Feb': 0, 'Aug': 0, 'Sep': 0, 'Apr': 0, 'Jun': 0, 'Jul': 0, 'Jan': 0, 'May': 0, 'Nov': 0, 'Dec': 0, 'Oct': 2221}} 

回答

0

可以使每個信息字典的有序列表。所以Jan的信息是第0個元素等等。例如

{ 'cummu_sbcr_mthl': [ {'Mar', 0}, {'Feb': 0} ..., {'Dec': 0} ], 
    'monthly_perc': [ .... ], 
} 

或者另一種方法:

創建類型的字典列表。例如,如下創建列表。

month_subscription = [ 
     { 'month': 'Mar', 'mindex': 3, 'cummu_sbcr_mnthl': 0, 'monthly_per': 0, 
      'cummu_sbcr_perc': 0, 'monthly_subscription': 0 
     }, 
     ... 
     { 'month': 'Oct', 'mindex': 10, 'cummu_sbcr_mnthl': 2221, 'monthly_per': 100, 
      'cummu_sbcr_perc': 100, 'monthly_subscription': 2221 
     }, 
    ] 

如果不需要,您可能需要刪除'mindex'

+0

雖然這是一個結構,但我發現重複的「種類」信息甚至比僅僅一個月的重複更糟。麻煩的是,我需要能夠在模板中迭代類似的東西:cummy_sbcr_perc:Jan:10,Feb,23 etc ... – cp151

+0

你需要獲得有序的列表,但字典不能給你。檢查第一部分更新的答案。 – Rohan

0

爲什麼不使用OrderedDict?與dict的行爲幾乎相同,只是對構造函數有點小心:不要將它傳遞給字典(因爲在傳遞給OrderedDict構造函數之前該字典將是無序的)。