Добрый вечер.
Сделал по примерам из доки (версия django 1.8):
class RBPassengerModelFormSet(BaseModelFormSet):
def clean(self):
super(RBPassengerModelFormSet, self).clean()
lp = 0
for form in self.forms:
if form.cleaned_data['lead_pass']:
lp += 1
if lp != 1:
raise ValidationError(u'У одного и только одного из пассажиров должна быть проставлена галочка "Заказчик"!')
PassengerFormSet = modelformset_factory(RBPassenger, formset=RBPassengerModelFormSet, exclude=('rbid', 'rbm', 'rb'), widgets={'category': Select(attrs={'disabled': True})})
Попробовал использовать, выполнил formset.is_valid(), выдаёт ошибку, что в cleaned_data нет такого ключа lead_pass, проверил, cleaned_data вообще на этом этапе пустой. При этом у формы valid=True
Потом закомментировал строчки с дополнительной проверкой, и попробовал отправить форму вообще не заполненную, и она прошла валидацию. При том что в модели RBPassenger есть поля, в которых не указано blank=True, null=True.
Вопрос - что я делаю не так?