Django如何为多个表单创建一个帖子请求。

时间:2017-12-12 18:27:16

标签: django-forms django-views

我在同一个模板中有多个表单,每个表单都链接到一个按钮(aform按钮,bform按钮......),当点击获取带有一些文件的弹出窗体时,如何通过创建保存该表单views.py

中的帖子请求

(我知道为单个表单创建一个POST请求。)但是我如何为多个表单实现这一点。 注意:一次只能提交一份表格。

def example_view(request):

context = {
    'aform':AForm(),
    'bform':BForm(),
    'cform':CForm(),
    'dform':DForm()
}
template = "xyz.html"
return render(request, template, context)

如何为多个表单创建帖子请求?

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式执行此操作。

  1. 使用ajax提交表单并分别处理每个表单。这样,每个表单都会在不同的链接中发布。
  2. 在两个表单的操作中放入不同的URL。然后你就拥有了 两种不同的视图函数来处理两种不同的形式。
  3. 从POST数据中读取提交按钮值。你必须发送一个参数,你可以告诉谁 点击提交按钮。

    forma = FormA(prefix="a")
    formb = FormB(prefix="b")
    which_form = request.GET.get('form_name')
    if request.POST:
         if which_form == 'a':
             forma = FormA(request.POST, prefix="a")
             if forma.is_valid():
                 obja = forma.save()
         if which_form == 'b':
             formB = FormB(request.POST, prefix="b")
             if formb.is_valid():
                 objb = formb.save()