Ho bisogno di "sovrascrivere" alcuni membri della classe nidificata della classe base, mantenendo intatto il resto.
Questo è quello che faccio:Qual è un modo migliore per sovrascrivere i membri della classe nidificati in Python?
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
In realtà, voglio InternApplicationForm.Meta
essere esattamente comeInternGenericForm.Meta
, tranne che la sua exclude
tupla deve contenere un elemento di più.
Qual è un modo più bello di farlo in Python?
Mi piacerebbe non aver bisogno di scrivere il codice boilerplate come model = InternGenericForm.Meta.model
che è anche soggetto a errori.