Я разрабатываю мастер с помощью Formwizard, который соответствует одной модели. Также из-за отношений между моей моделью и другими моделями я использую inlineformset_factory, чтобы поля присутствовали в шаблоне.
Я создал 2 формы с одной и той же моделью для атрибута модели. Я только что изменил атрибут полей, чтобы различать 2 формы, которые я использую в своем мастере.
На данный момент, чтобы сохранить информацию о формах в моем мастере, я делаю это:
def done(self, request, form_list):
instance = Sale()
for form in form_list:
for field, value in form.cleaned_data.iteritems():
setattr(instance, field, value)
instance.save()
Это работает хорошо, но не сохраняет мои встроенные формы.
Итак, я добавил это в метод done:
picture_formset = ProductPictureFormset(request.POST, instance=instance)
if picture_formset.is_valid():
picture_formset.save()
Но когда я это делаю, у меня появляется эта ошибка в Django:
Exception Type: ValidationError
Я заметил, что мои данные, содержащиеся в моих встроенных наборах форм, не передаются между шагами. Вот как я добавляю встроенный набор форм в свой мастер прямо сейчас:
def parse_params(self, request, *args, **kwargs):
if self.step == 0:
self.extra_context.update({
'picture_formset': ProductPictureFormset(),
'brand_attribute_formset': BrandAttributeFormset()
})
Но, похоже, мне нужно найти способ передать данные, полученные в этих формах, на второй шаг.
Есть идеи, как это сделать?
Спасибо!