2014-09-25 48 views
1
<form method="post" name="message_frm">{% csrf_token %} 
     <input type="hidden" name="post_id" value="{{post.id}}"> 
     {{message_frm.as_p}} 
     <input type="submit" value="Reply"/ 

我只是想知道我怎麼能確認的是,這是一個POST請求期間發送的形式與「message_frm」的名稱的形式在django的發佈請求之後,如何獲取表單的名稱?

感謝

回答

2

您可以在name屬性設置namesubmit按鈕這樣的:

<input type="submit" value="Reply" name ="message_frm"> 

views.py可以recongnize form這樣的:

if 'message_frm' in request.POST: 
    #do somethings 
+0

我正在尋找方法來從請求對象中獲取表單的名稱。有點像request.POST.form.name – user1631075 2014-09-25 22:07:54

+0

只是一個快速問題?,是表單本身的名稱是不可訪問的?例如,發送的數據是否僅包含「

」標記中的內容,而不包含表單標記本身中的內容? – user1631075 2014-09-25 22:24:10

+0

正確。這正是HTML表單始終有效的方式。參見[17.13表單提交](http://www.w3.org/TR/html401/interact/forms.html#h-17.13),特別是'17.13.2成功控件'和'17.13.3處理表單數據' 。我猜如果框架自動添加一個隱藏字段或者使用哈桑的竅門在成功的控件中包含表單名稱/標識,它會很方便。 OTOH,如果他們插手你的頁面結構,也可能會很煩人。 :) – 2014-09-25 23:59:58

2

我假設你想在視圖中檢查這個。我總是這樣做,以確定使用哪種形式。

<form method="post" name="message_frm">{% csrf_token %} 

    <-- Add this input to all forms --> 
    <input type="hidden" name="name" value="message_frm"> 

    <input type="hidden" name="post_id" value="{{post.id}}"> 
    {{message_frm.as_p}} 
    <input type="submit" value="Reply"/ 


def viewFunc(request): 
    if request.method == 'POST': 
     name = request.POST.get('name') 
     if name == 'message_frm': 
      # Do something here. 
     elif name == 'other_frm': 
      # Do something else here. 
+1

哦,我喜歡哈桑比我的更好。如果它適合你,我會盡力去做。 – 2014-09-25 22:06:11

+0

只是一個簡短的問題?,表單本身的名稱是不可訪問的?例如,發送的數據是否僅包含「

」標記中的內容,而不包含表單標記本身中的內容? – user1631075 2014-09-25 22:21:09

+0

不是。當您將表單添加到模板時,它只會轉儲出一些基本的html。請求對象讀取以確定是否使用了django,沒有什麼特別的。您需要使用這些小黑客來確定發佈內容。 – 2014-09-25 22:29:19

相關問題