Я новичок в Python и Django и пытаюсь изучить его, поскольку я иду, однако, есть одна вещь, которая меня смущает.Зачем объявлять виджет поля перед супер-init?
В пользовательском поле шахты у меня есть:
def __init__(self, *args, **kwargs):
self.request = None
self.widget = ReCaptcha
super(ReCaptchaField, self).__init__(*args, **kwargs)
self.required = True
self.error_messages = {'required': self.default_error_messages['captcha_invalid']}
, и я не могу понять, почему объявить виджет поле работает там, где это, но не после того, как:
super(ReCaptchaField, self).__init__(*args, **kwargs)
Вместо этого он на самом деле производит ошибка, в которой:
def value_from_datadict(self, data, files, name):
В мой виджет на самом деле не принят self
по какой-то причине.
Однако:
self.error_messages = {'required': self.default_error_messages['captcha_invalid']}
работает только после вызова super
.
Почему это?