【发布时间】:2014-04-21 20:06:21
【问题描述】:
我的代码如下。我实际上正在重新定义我的vehicle_make,只是为了更改其在继承类(UpdateForm)中的初始值。我正在寻找一种 DRY 方法。我尝试了 field['fieldname'].initial="value",但这给出了 keyerror。
class BaseInputForm(forms.ModelForm):
class Meta:
model = Vehicle
exclude = ('vehicle_make','vehicle_model')
def __init__(self, *args, **kwargs):
super(SearchInputForm, self).__init__(*args, **kwargs)
self.fields['vehicle_make']=forms.ChoiceField(
initial="NA",
label="Car make",
choices=MAKES,
widget=forms.Select(attrs={'id':'makes'})
)
class CreateForm(BaseInputForm):
pass
class UpdateForm(BaseInputForm):
def __init__(self, *args, **kwargs):
super(SearchUpdateForm, self).__init__(*args, **kwargs)
self.vehicle_make=self.instance.vehicle_make
self.fields['vehicle_make'] = forms.ChoiceField(
initial=self.vehicle_make,
label="Car make",
choices=MAKES,
widget=forms.Select(attrs={'id':'makes'})
)
#self.fields['vehicle_make'].initial=self.instance.vehicle_model
【问题讨论】:
标签: django-forms django-class-based-views django-models