Я новичок в Django и делаю проект с многошаговой формой, используя django-formtools
. Проблема в том, что в моей форме шага 2 у меня есть поля выбора, которые мне нужно передать в серверной части, чтобы выполнить некоторые вычисления, а затем отобразить вывод. Пользователь может вносить изменения в любое время на основе вывода. Я сделал кнопку apply changes
, которая должна запускать серверный процесс, и кнопку proceed to next step
, если пользователь решит завершить выбранные изменения. Однако, когда я нажимаю кнопку apply changes
, вместо этого я перехожу к следующему шагу.
Вот мой код HTML
:
<form action="" method="POST">
{% csrf_token %}
{{ wizard.management_form }}
{% if wizard.form.forms %}
{{ wizard.form.management_form }}
{% for form in wizard.form.forms %}
{{ form }}
{% endfor %}
{% else %}
{{ form }} # three selection fields
<button name="apply_changes">Apply Changes</button>
{% endif %}
{% if wizard.steps.prev %}
<button name="wizard_goto_step" type="submit" value="{{ wizard.steps.prev }}">{% trans '‹ Previous Step' %}</button>
{% endif %}
<input type="submit" value="{% trans 'Finish' %}">
</form>
Вот фрагмент кода моего метода SessionWizardView
:
def get_context_data(self, form, **kwargs):
context = super(StepWizard, self).get_context_data(form=form, **kwargs)
if self.steps.current == 'step_1':
# save step 1 data to sessions
if self.steps.current == 'step_2':
step1_data = self.get_all_cleaned_data()
# if apply changes button is clicked
data = self.request.POST.get('apply_changes')
# process data
# add output to context
return context
Мне нужна помощь в том, как это можно сделать правильно. Заранее спасибо!