2015-08-12 7 views
2

Здесь, новичок в django.Опубликовать Django formet через AJAX

Я использую формы в Django как часть шага в процессе мастера, и я хотел бы отправить их после завершения процесса (не через классический submit). Я хотел бы отправить его вместе с другими данными через POST с помощью Javascript.

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

Пример того, что у меня есть:

в views.py

formset = formset_factory(CustomerForm, extra=customer_number) 
return render (request, 'customer/customer_info.html', {'customerformset':formset}) 

в шаблоне

{% for form in customerformset %} 
{{form}} 
{% endfor %} 

в оказываемых HTML

<input class="form-control input-sm" maxlength="30" name="form-0-name" placeholder="Name" required="true" type="text"> 
<input class="form-control input-sm" maxlength="30" name="form-0-surname" placeholder="Surname" required="true" type="text"> 
<input class="form-control input-sm" maxlength="30" name="form-0-email" placeholder="Email" required="true" type="text"> 

ответ

0

Хотя формы отделены от точка vi ew из Django, в HTML все они содержатся в одном и том же элементе <form>. Таким образом, вы можете сериализовать их на одном дыхании:

data = $('form').serialize(); 

Обратите внимание, что это не конвертировать в формат JSON, и нет необходимости делать это: это преобразует значения в нормальных данных форм-кодированию, которые могут быть размещен прямо и используется в Django по стандарту request.POST.

0

Вы можете использовать Мастер форм в django, и каждый шаг может иметь совершенно разные классы форм. Информация может храниться как в cookie, так и в Session, и после того, как она была окончательно отправлена ​​(и подтверждена, помните, она похожа на любую другую форму), информация будет удалена из сеанса.

class ContactWizard(AccessMixin, NamedUrlSessionWizardView):

Обычно мастер прекрасно использовать, однако это может стать довольно сложным, если вы хотите добавить, например, шаги регистрации/входа между ними.

Смежные вопросы