如何判断Django中提交的两种表单中的哪一种?

时间:2014-09-14 17:49:46

标签: javascript jquery python django

我的主页上有log_insign_up表单。 log_in设置为默认显示,当用户点击注册按钮时,sign_up即会显示。这两个切换,取决于用户点击的按钮。

from django import forms

class LogInForm(forms.Form):
    pass
class SignUpForm(forms.Form):
    pass

两种表单都调用相同的视图 - index_view()

2 个答案:

答案 0 :(得分:1)

另一种方法是将GET参数添加到url并在视图中进行检查:

<form action="{% url index %}?action=login">

并在视图中

def index_view(request):
    action = request.GET.get('action', '')
    if action == 'login':
        ...

答案 1 :(得分:1)

你在寻找错误的地方。除非您在POST中提供一些信息,否则Django无法分辨提交的表单。 best 这样做的地方是在提交按钮中,您可以为其他任何表单元素指定名称和值。

<form action="." method="POST">
    {{ login_form.as_p }}
    <input type="submit" name="login" value="login">
</form>

<form action="." method="POST">
    {{ signup_form.as_p }}
    <input type="submit" name="signup" value="signup">
</form>

在视图中,您需要做的就是检查POST中的输入:

if 'login' in request.POST:
    # do something with login_form
else:
    # do something with signup_form