Как сделать шаг необязательным с помощью мастера форм django

Мастер форм Django имеет condition_dict, который позволяет пропускать определенные шаги при выполнении условий. Что, если мы не хотим пропускать шаг, но делаем его необязательным. Другими словами, форма для этого шага по-прежнему будет отображаться, но у нее есть как кнопка отправки, так и кнопка пропуска этого шага. Кнопка «Отправить» будет выполнять обычную проверку формы, а кнопка «Пропустить» перенесет пользователей на следующий шаг.

Возможно ли это вообще с помощью мастера форм в django 1.4/1.5? Если это так, пожалуйста, дайте мне несколько советов. Спасибо.


person lastoneisbearfood    schedule 30.03.2013    source источник
comment
Я предполагаю, что хакерский способ состоит в том, чтобы эта кнопка пропуска заполнила форму поддельными данными, а на шаге done() эти поддельные данные будут распознаны и отброшены. Хотя должен быть более чистый подход.   -  person lastoneisbearfood    schedule 30.03.2013


Ответы (1)


Если вы установите значения по умолчанию или пустые поля в рассматриваемой форме, форма будет очищена, установив форму как «необязательную», нет?

person Mindscope    schedule 18.04.2013
comment
Это требует определения отдельного класса формы со всеми полями, установленными с required=False. Я ищу решение уровня мастера формы, чтобы я мог использовать тот же класс формы и для других сценариев. На данный момент похоже, что это будет серьезная настройка метода process_step. - person lastoneisbearfood; 21.04.2013
comment
В этом случае, я думаю, вам нужно будет переопределить condition_dict на каждом шаге мастера форм, связанном с необходимой вам логикой. - person Mindscope; 20.01.2014