2011-10-10 15 views
6

Geri kalanını sağlam tutarken, bazı temel sınıf 'iç içe geçmiş sınıf üyelerini' geçersiz kılmam gerekiyor.
Bu benim yaptığım:Python'da iç içe geçmiş sınıf üyelerini geçersiz kılmanın daha iyi bir yolu nedir?

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 

Aslında, onun exclude tanımlama grubu bir tane daha öğe içermelidir dışında InternGenericForm.Meta gibi tam olmak InternApplicationForm.Meta istiyorum.

Python'da bunu yapmanın daha güzel bir yolu nedir?
Keşke hatalara da eğilimli olan model = InternGenericForm.Meta.model gibi boilerplate kodu yazmak zorunda kalmamayı diledim.

cevap

13
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 
İlgili konular