2011-10-05 22 views
5

ChoiceField:Django Formlar İki Django ChoiceField türlü sorunuz

Bu benim biçimidir: Bu iyi çalışır

class ContactForm(forms.Form): 
    GENDER = (
     (1, _("Mr.")), 
     (2, _("Ms.")), 
    ) 
    prefix = forms.ChoiceField(choices=GENDER) 
    ... 

, ancak choicefield varsayılan almaz neden merak ..

Sayfada, Bay seçili değer olarak oluşturulur, ancak form gönderilirse (not: required = True bu alan için varsayılan değerdir) bir hata atmaz ve form verisi formundaki değer " Ms "yerine.

Diğer soru: {{ prefix.get_prefix_display }} çalışmıyor .. Bu fonksiyonun kullanımıyla model ve formlar arasında fark var mı?

cevap

9

Bence FormFields ve ModelFields'ı karıştırıyorsunuz. Varsayılan bir seçim ayarlayabilirsiniz Kişisel FormField 'ilk' argümanını kullanarak görünmesini:

https://docs.djangoproject.com/en/dev/ref/forms/fields/#initial

ama bir varsayılan değer 'varsayılan' argümanı kullanarak ayarlanabilir kendisi için bir ModelField tarafından Modelinizdeki temsil edilir : Aradığım buydu

https://docs.djangoproject.com/en/dev/ref/models/fields/#default

+0

Teşekkür –