2017-01-18 46 views
-2

問題是我的表單是動態的。每次根據數據庫中的數據可能有不同數量的字段。我能夠手動呈現此表單(通過將屬性和類型作爲上下文傳遞給模板)。但是如何處理在django中按下提交按鈕的動作?Django手動創建並提交表單

回答

1

假設你已經有一個功能到您的views.py呈現模板,你只是基本上要驗證是否有過任何數據發佈:

def contact(request): # let's say it's a contact form 
    if request.method == 'POST': # If the form has been submitted... 
     print(request.POST) 
     # do your things with the posted data 
    else: # form not posted : show the form. 
     return render(...) 

同時請注意,您必須手動添加{% csrf_token %}您的模板內的<form></form>之間的任何地方,基本上都會添加一個隱藏字段來保護您的站點免受跨站請求僞造攻擊。

如果你這樣做,只是不要把任何action屬性放在你的表單中,以便它發佈到相同的URL。

+0

我還有兩個問題!我如何獲得所有發佈的值?基於類的視圖有可能嗎? –

+0

'request.POST.get('field_name')'關於基於類的視圖,請選中:https://docs.djangoproject.com/en/1.10/topics/class-based-views/intro/#handling-forms-與一流的基礎-意見 –