2016-02-16 79 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

相關問題