[英]Django forms - append to class meta exclude and widgets
是否可以附加到繼承表單的exclude或widgets變量?
到目前為止我有以下設置。
class AddPropertyForm(forms.ModelForm):
num_months = forms.ChoiceField(choices=MONTHS)
request_featured = forms.BooleanField(required=False)
featured_months = forms.ChoiceField(choices=MONTHS)
class Meta():
model = RentalProperty
exclude = ('listing_id', 'active_listing', 'active_listing_expiry_date', 'featured_property', 'featured_expiry_date', 'slug', 'property_manager')
widgets = {
'property_type': forms.Select(attrs={'onchange':'propertyType()'}),
}
class EditPropertyForm(AddPropertyForm):
request_reactivation = forms.BooleanField(required=False)
class Meta(AddPropertyForm.Meta):
exclude = ('address1', 'property_type')
widgets = {
'request_reactivation': forms.CheckboxInput(attrs {'onchange':'reactivateProperty()'}),
}
我試圖讓EditPropertyForm的最終結果看起來像下面的exclude和widgets語句。
exclude = ('address1', 'property_type', 'listing_id', 'active_listing', 'active_listing_expiry_date', 'featured_property', 'featured_expiry_date', 'slug', 'property_manager')
widgets = {
'request_reactivation': forms.CheckboxInput(attrs {'onchange':'reactivateProperty()'}),
'property_type': forms.Select(attrs={'onchange':'propertyType()'}),
}
如果有更好的方法,請建議。
任何幫助都非常感謝。
從父類Meta中獲取屬性並更新它們怎么樣?
像這樣(未經測試):
class Meta(AddPropertyForm.Meta):
exclude = tuple(list(AddPropertyForm.Meta.exclude) + ['address1', 'property_type'])
widgets = AddPropertyForm.Meta.widgets.copy()
widgets.update({
'request_reactivation': forms.CheckboxInput(attrs {'onchange':'reactivateProperty()'}),
})
它不漂亮,但應該得到你想要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.