Почему валидация в подклассной форме нарушается? - PullRequest
0 голосов
/ 03 февраля 2012

Когда я создаю CustomerForm (), который является подклассом EnhancedModelForm (), изменения (обязательно = True), сделанные при инициализации формы с __init__(), не учитываются чистыми методами по умолчанию? Почему это?

class EnhancedModelForm(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        super(EnhancedModelForm, self).__init__(*args, **kwargs)
        test = self.errors

И форма

class CustomerForm(EnhancedModelForm):

    class Meta:
        model = Customer
        fields = ('salutation', 'first_name', 'last_name', 'phone_number', 'email_address')

    def __init__(self, *args, **kwargs):
        super(CustomerForm, self).__init__(*args, **kwargs)
        self.fields['phone_number'].required = True
        self.fields['email_address'].required = True

1 Ответ

0 голосов
/ 04 февраля 2012

Вместо переопределения метода init () я теперь использую ловушку _post_clean () в django.forms.form.BaseForm ()

"""
An internal hook for performing additional cleaning after form cleaning
is complete. Used for model validation in model forms.
"""

Это прекрасно работает

...