Django中单一表单上的多个提交按钮

时间:2018-10-15 07:31:14

标签: django django-forms django-views

在一个表单中,我有两个提交按钮。根据用户单击哪个按钮,我希望form.is_valid()上的重定向成为页面A或页面B。您知道我如何能够为每个提交按钮附加一个不同的值并将该值传递给POST请求,以便我可以在我的视图中对其进行评估?

template.html

<div class="submitbutton"">
                <button type="submit">
                   Submit A
                </button>
            </div>

  <div class="submitbutton"">
                <button type="submit">
                   Submit B
                </button>
            </div>

views.py

 if request.method == 'POST':

    <!-- a bunch of code that works -->


   if user_clicked_SubmitA:     
         return redirect('profile')

   if user_clicked_SubmitB:
         return redirect('home')

谢谢!

2 个答案:

答案 0 :(得分:2)

login.microsoftonline.com{tenantId}/common属性添加到您的按钮:

name

并在视图中检查它:

<button type="submit" name="btn1" value="btn1">Button 1</button>
<button type="submit" name="btn2" value="btn2">Button 2</button>

更新:向def my_view(request): if request.POST.get('btn1'): # first button clicked if request.POST.get('btn2'): # second 标签添加了value属性。

答案 1 :(得分:1)

您可以执行以下操作

def my_view(request):
    post_data = request.POST
    if '_submit1' in post_data:
        return HttpResponseRedirect("")
    elif '_submit2' in post_data:
        return HttpResponseRedirect("")
    elif '_submit3' in post_data:
        return HttpResponseRedirect("")
    else:
        return HttpResponseRedirect("")



<form action="<view_url>">
<input type="submit" name="_submit1" />
<input type="submit" name="_submit2" />
<input type="submit" name="_submit3" />
</form>