Formwizard с одной моделью и встроенным набором форм - PullRequest
2 голосов
/ 28 мая 2011

Я разрабатываю мастер с использованием Formwizard, который соответствует одной модели.Также из-за отношений между моей моделью и другими моделями я использую inlineformset_factory, чтобы поля присутствовали в шаблоне.

Я создал 2 формы с той же моделью для атрибута модели.Я только что изменил атрибут fields, чтобы дифференцировать 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()

Это работает хорошо, но не сохраняет мои inlineformsets

Поэтому я добавил это в готовый метод:

    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()
        })

Но, похоже, мне нужно найти способ передать данные, полученные в этих формах, на второй шаг.

Есть идеи, как это сделать?

Спасибо!

1 Ответ

1 голос
/ 26 июля 2011

Я немного реорганизовал свои модели, чтобы иметь возможность сохранять каждую модель на каждом шаге в process_step.Также я храню информацию в сессии.

...