我的主页上有log_in
和sign_up
表单。 log_in
设置为默认显示,当用户点击注册按钮时,sign_up
即会显示。这两个切换,取决于用户点击的按钮。
from django import forms
class LogInForm(forms.Form):
pass
class SignUpForm(forms.Form):
pass
两种表单都调用相同的视图 - index_view()
。
答案 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