2016-02-16 110 views
0

数据属性我有一个字段的一种形式:为ChoiceField选项

phone_code = forms.ChoiceField(
     label=_('Phone code'), 
     widget=forms.Select(attrs={'class': 'short'}) 
) 

我需要的数据属性添加到<option>存储国家代码为每个电话区号。我试图做到这一点,在未来的方式:在模板我使这一领域的未来方式:

     <select name="{{ phone_code_field.name }}"> 
          {% for choice in phone_code_field.field.extra_data %} 
           <option data-choice-code="{{ choice.0.0 }}" value="{{ choice.0.1 }}">{{ choice.1 }}</option> 
          {% endfor %} 
         </select> 

extra_data是一种数据结构,其中 我店电话区号和国家代码为每个选择。

问题:但错误验证后,选定的电话代码值是选择器中的第一选择,而不是最后选择的选择。如果字段由Django表单({{ form.phone_code }})来自动呈现,它的工作原理是正确的,但在这种情况下,我要重写选择部件。我如何以我的方式执行此操作?

或者我该如何在模板中定义应该选择哪个属性?

回答

0

如果你坚持手工绘制的领域,那么你也可以手动确定选择哪个项目,并输出对相关之一selected属性。

{% for choice in phone_code_field.field.extra_data %} 
    <option {% if phone_code_field.field.value == choice.0.1 %}selected="selected"{% endif %} data-choice-code="{{ choice.0.0 }}" value="{{ choice.0.1 }}">{{ choice.1 }}</option> 
{% endfor %} 
+0

谢谢。我也有这个想法,但以不同的方式实现它:'{%如果choice.0.1 == contacts_form.cleaned_data.phone_code%}选择=“选择” {%ENDIF%}' – Litwisha

相关问题