2014-10-24 2 views
0

У меня есть одна форма, которая должна быть унаследована второй. Поле, а также валидация поведение (мой Google-fu не позволяет мне это) родителя должен быть активен в дочернем.Наследование формы django с проверкой

Это пример формы с полями и поведением проверки я хочу быть унаследованы:

class INeedForm(forms.Form): 
    i_need = forms.ChoiceField(
     label = "I need", 
     choices= [ 
     ("select", "Select"), 
     ("only", "The only choice"), 
     ], 
     initial = "select", 
     widget = forms.Select(attrs = {'class' : 'form-control'})) 

    def clean(self): 
     cleaned_data = super(INeedForm, self).clean() 

     i_need = cleaned_data.get("i_need") 
     if i_need == "select": 
      self.add_error('i_need', "Please select one") 
+2

OK. Итак, что не работает, когда вы пытаетесь это сделать? –

ответ

1

В конце метода clean вы должны вернуть cleaned_data.

И вы можете наследовать ваш INeedForm и его поведение:

class NewForm(INeedForm): 
    # If you need inherit Meta 
    class Meta(INeedForm.Meta): 
     pass 
Смежные вопросы