Мне нужно «переопределить» некоторые из вложенных членов базового класса, оставив при этом остальные нетронутыми.
Вот что я делаю:
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?
IЖаль, что мне не пришлось писать шаблонный код, такой как model = InternGenericForm.Meta.model
, который также подвержен ошибкам.