Django formwizard с наборами форм и форм на одной странице

Я работаю с Django 1.4 FormWizard (в частности, NamedUrlFormWizard)

во-первых, основы. у меня есть трехступенчатый мастер форм, который я создаю. Конечным результатом является определение шаблона, затем выбор людей для его использования, а затем отправка им электронного письма.

  • Шаг 1 - введите основные данные шаблона (имя, описание и т. д.)
  • Шаг 2 — определите список из N полей, каждое из которых имеет собственный набор атрибутов, но все они идентичны по структуре.
  • Шаг 3. Выберите одного или нескольких пользователей, которым хотите отправить электронное письмо, И настройте содержимое этого электронного письма перед сохранением.

пока что в мастере формы:

  • Шаг 1 — это стандартный класс Form, и он отлично работает.
  • Шаг 2 — это стандартный класс Formset, и он отлично работает.
  • Шаг 3 доставляет мне некоторые проблемы. Это должен быть набор форм (список адресов электронной почты), а также дополнительное поле ввода формы с текстом электронной почты. Я не могу понять, как иметь оба набора форм в дополнение к неповторяющемуся вводу формы на одной странице внутри мастера форм.

в идеальном мире я мог бы определить набор форм как еще одно поле формы в определении формы. то есть:

class EmailAddressForm(forms.Form):
    email = forms.EmailField()

class EmailAddressesAndText(forms.Form):
    emailText = forms.Textarea()
    emailAddressFormSet = formset_factory(EmailAddressForm, etc etc)

затем укажите мою страницу FormWizard на «EmailAddressesAndText» и покончите с этим. но это не идеальный мир. Любые идеи о том, как я могу добиться такого?


person IMFletcher    schedule 22.08.2012    source источник


Ответы (1)


Вы можете использовать get_form() метод WizardView, чтобы настроить форму для определенного шага. См.: WizardView.get_form. Этот ответ может помочь вам добавить поле

Другим вариантом было бы добавить поле в набор форм и через JS отключить и скрыть все экземпляры, кроме первого.

person Rohan    schedule 22.08.2012
comment
Документы (как и код) перемещены на django-formwizard.readthedocs.io /en/latest/gettingstarted.html - person boatcoder; 11.09.2017