Reputation: 2760
I have a address form which has a choicefield of countries. I want to set a value before the form loads. How could I do that? Here is the form:
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())
Upvotes: 3
Views: 4065
Reputation: 21680
country = forms.ChoiceField(label=_("Country"),
choices=countries.COUNTRIES, widget=forms.Select(), initial= 'us')
or you can initiate it when calling form constructor
form = AddressForm(initial={'country': 'us'})
Upvotes: 2