【问题标题】:how to set a value for choicefield in django如何在django中为choicefield设置一个值
【发布时间】:2013-08-08 11:09:59
【问题描述】:

我有一个地址表格,其中包含国家选择字段。我想在表单加载之前设置一个值。我怎么能那样做? 这是表格:

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())

【问题讨论】:

    标签: django python-2.7 django-forms django-1.5 choicefield


    【解决方案1】:
    country = forms.ChoiceField(label=_("Country"), 
              choices=countries.COUNTRIES, widget=forms.Select(), initial= 'us')
    

    或者你可以在调用表单构造函数时启动它

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

    【讨论】:

    • 更易于维护:forms.ChoiceField(label=_("Country"), choice=countries.COUNTRIES, widget=forms.Select(), default = countries.COUNTRIES[0]) 例如,如果有一天你的选择改变了,Django 不会崩溃 :)
    • @Ricola3D 默认用于模型,对于表单它是初始的
    • @suhail,当我使用 sessionwizard 时,您的代码对我不起作用。对不起,我忘了提。
    猜你喜欢
    • 2023-03-16
    • 2014-07-11
    • 1970-01-01
    • 2017-04-15
    • 2013-06-27
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    • 2011-12-13
    相关资源
    最近更新 更多