0

好!

我有这个字典:

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

我想在我的 django 页面中显示。以前,我用点大括号<代替&lt;东西,但后来我意识到我不仅显示了一个下拉菜单,而且在网站的其他部分,我正在显示内容(所以,你知道,只有第 3 项)。

有了以上内容,当我只显示第三项时?一切看起来都很好。但是当我将字典显示为选择下拉列表时?然后 django 决定不解码这些&gt;东西。

鉴于我将字典发送到模板:

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

在模板中我这样显示:

Choose from  {{ theForm.periodChoice }}

我如何让模板做我想做的事?我试着很好地询问,我什至尝试了|安全...没有运气!

4

2 回答 2

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")),
]

其余部分保持原样。

于 2012-09-28T19:21:33.027 回答
1

只需|safe在模板中指定为过滤器。

{{ theForm.periodChoice|safe }}
于 2012-09-28T18:37:52.237 回答