簡體   English   中英

我如何知道兩種形式中的哪一種是在Django中提交的?

[英]How can I tell which of the two forms is submitted in Django?

我的log_in有一個log_insign_up表單。 默認情況下, log_in設置為顯示,並且當用戶單擊“ 注冊”按鈕時,可以查看sign_up 這兩個切換取決於用戶單擊的按鈕。

from django import forms

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

兩種形式都調用相同的view- index_view()

另一種方法是將GET參數添加到url並在視圖中檢查它:

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

並認為

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

您在這個地方找錯了。 除非您在POST中提供一些信息,否則Django無法確定提交的表單。 最佳方法是在“提交”按鈕中,您可以為該按鈕指定名稱和值,使其與其他任何表單元素一樣。

<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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM