2017-07-07 76 views
0

我在模板中傳遞兩個帶有不同前綴的表單並且每個表單都有自己的提交按鈕,但是如何從提交按鈕中的這兩個表單中獲取數據它們中的一個,以及如何區分哪個表單按鈕被按下在Django中區分具有不同前綴的相同表單的實例

return render(request,'part_details.html', {'part_stock_form': forms.part_stock_form(prefix='add'),'part_stock_edit':forms.part_stock_form(prefix='edit')}) 

模板:add_app形式對象

<form id="add_app_form" method="post" action="{% url 'parts:part_app_model' part_temp.part_id %}"> 
    {% csrf_token %} 
    {{ add_app.applicable }} 
    <input type="submit"> 
</form> 

模板:edit_app形式對象

<form method="post" action="{% url 'parts:part_app_model' part_temp.part_id %}"> 
    {{ edit_app.applicable }} 
    <input type="submit"> 
</form> 

回答

3

,因爲你有2個提交按鈕的名稱和檢查它們,就像

<input type="submit" name="fom1">sumbit formm 1 

<input type="submit" name="fom2">sumbit formm 2 

if 'fom1' in request.POST: 
    #statements 
elif 'fom2' in request.POST: 
    #statements 
2

一個簡單的方法是檢查POST數據的鍵。 假設你有一種形式的field1和另一種形式的field2,但兩種形式都不存在。

if 'field1' in request.POST.keys(): 
    #statements 
elif 'field2' in request.POST.keys(): 
    #statements 

另一種方式是根據形式action屬性將它們發送到不同的URL,然後定義單獨的視圖對於他們來說,並相應地配置urls.py。 希望它有幫助。

+0

其關鍵是你在說什麼?他們是同一種形式的實例不會有相同的密鑰? –

+0

如果您使用POST提交表單,則django服務器將以django.http.request.QueryDict對象的形式接收數據。它具有鍵值對,如Python字典。 「request.POST.keys()」返回密鑰列表。 使用這些: 「打印request.POST.keys()」 「print request.POST」 並且您可以在終端中看到您運行服務器的輸出。 – aashu

相關問題