我需要“覆盖”一些基类的嵌套类成员,同时保持其余的完整 这就是我的工作:
class InternGenericForm(ModelForm):
class Meta:
model = Intern
exclude = ('last_achievement', 'program',)
widgets = {
'name': TextInput(attrs={'placeholder': 'Имя и фамилия' }),
}
class InternApplicationForm(InternGenericForm):
class Meta:
# Boilerplate code that violates DRY
model = InternGenericForm.Meta.model
exclude = ('is_active',) + InternGenericForm.Meta.exclude
widgets = InternGenericForm.Meta.widgets
事实上,我希望InternApplicationForm.Meta
完全与InternGenericForm.Meta
完全相同,只是其exclude
元组应该包含一个项目。
在Python中执行此操作的更美妙方法是什么?
我希望我不必编写像model = InternGenericForm.Meta.model
那样容易出错的样板代码。
答案 0 :(得分:15)
class InternGenericForm(ModelForm):
class Meta:
model = Intern
exclude = ('last_achievement', 'program',)
widgets = {
'name': TextInput(attrs={'placeholder': 'Имя и фамилия' }),
}
class InternApplicationForm(InternGenericForm):
class Meta(InternGenericForm.Meta):
exclude = ('is_active',) + InternGenericForm.Meta.exclude