2012-09-28 31 views
0

Howdeh!django - 字典中的html代碼被盜取

我有這樣的字典:

PERIOD = [ 
    (1,"< 3 mnths"), 
    (2,"3 - 6mths"), 
    (3,"6mths - 1yr"), 
    (4,"1 - 2yrs"), 
    (5,"> 2yrs"), 
] 

,我想在我的Django頁面dispay。之前,我曾使用點大括號<而不是&lt;,但後來我意識到,不僅我顯示一個下拉菜單,而且在網站的其他部分顯示內容(所以,您知道,第3個項目)。

與上述,當我顯示只說第三個項目?一切都很美好。但是,當我將字典顯示爲選擇下拉菜單?然後django決定不解碼&gt;的東西。

鑑於我的字典發送到模板,這樣的:

periodChoice = ChoiceField(label='', choices=PERIOD, widget=forms.Select(attrs={'class':'regDropDown'})) 

,並在模板中我展示它是這樣的:

Choose from {{ theForm.periodChoice }} 

我如何得到模板做我想做它去做?我試過很好地問,我甚至試過|安全.​​..沒有運氣!

+0

你可以試試{{theForm.get_theForm.periodChoice_display | safe}} – karthikr

+0

沒有做任何事情......沒有任何顯示 – bharal

回答

2

試試這個:

from django.utils.safestring import mark_safe 

PERIOD = [ 
    (1, mark_safe("&lt; 3 mnths")), 
    (2,"3 - 6mths"), 
    (3,"6mths - 1yr"), 
    (4,"1 - 2yrs"), 
    (5, mark_safe("&gt; 2yrs")), 
] 

,剩下的,因爲它是現在。

+0

太棒了,謝謝。 – bharal

1

只需在模板中指定|safe作爲過濾器即可。

{{ theForm.periodChoice|safe }} 
+0

,這是行不通的。 – bharal