2013-08-07 6 views
3

나는 선택 영역이있는 주소 양식이 있습니다. 양식이로드되기 전에 값을 설정하려고합니다. 내가 어떻게 할 수 있니? 여기 의 형식은 다음과 같습니다django에서 choicefield의 값을 설정하는 방법

from django import forms 
from django.utils.translation import gettext as _ 

from django_countries import countries 
from core.api import NcpAPI 


class AddressForm(forms.Form): 
    # first_name  = forms.CharField(label=_("First Name"), widget=forms.TextInput(attrs={'class':'form-text required'})) 
    # last_name   = forms.CharField(label=_("Last Name"), widget=forms.TextInput(attrs={'class':'form-text required'})) 
    # company  = forms.CharField(label=_("Company"), widget=forms.TextInput(attrs={'class':'form-text required'})) 
    street   = forms.CharField(label=_("Street/PoBox"), widget=forms.TextInput(attrs={'class':'form-text required'})) 
    address1  = forms.CharField(label=_("Address1"), widget=forms.TextInput(attrs={'class':'form-text required'})) 
    address2  = forms.CharField(required=False, label=_("Address2"), widget=forms.TextInput(attrs={'class':'form-text'})) 
    address3  = forms.CharField(required=False, label=_("Address3"), widget=forms.TextInput(attrs={'class':'form-text'})) 
    city   = forms.CharField(label=_("City"), widget=forms.TextInput(attrs={'class':'form-text required'})) 
    postal_code  = forms.CharField(label=_("Postal code"), widget=forms.TextInput(attrs={'class':'form-text required'})) 
    country   = forms.ChoiceField(label=_("Country"), choices=countries.COUNTRIES, widget=forms.Select()) 

답변

2
country = forms.ChoiceField(label=_("Country"), 
      choices=countries.COUNTRIES, widget=forms.Select(), initial= 'us') 

또는 양식 생성자에게

form = AddressForm(initial={'country': 'us'}) 
+0

더 mantainable 호출 할 때 당신은 그것을 시작할 수 있습니다 : __forms.ChoiceField (라벨 = _ ("나라"), 선택 = 국가 .COUNTRIES, widget = forms.Select(), default = countries.COUNTRIES [0]) __ 예를 들어 선택 사항이 변경되면 Django는 충돌하지 않습니다. – Ricola3D

+0

@ Ricola3D 기본값은 모델의 경우, 양식의 경우입니다. 초기 – suhailvs

+0

@ suhail, sessionwizard를 사용할 때 코드가 작동하지 않습니다. 죄송 합니다만 언급하는 것을 잊어 버렸습니다. – Maverick