2012-02-08 80 views
0

我想創建一個幫助函數來驗證表單。如果表單有效,那麼我將在數據庫中創建一個對象。該函數有三個參數,請求,表單和模型。如何使用有效的表單數據在數據庫中創建對象?

def form_validate(request, form, model): 
    form = form(request.POST) 
    print form 
    if form.is_valid(): 
    print "the form is valid" 
    # create object using valid form 
    else: 
    print "the form is not valid" 
    # send back items 
    print form.errors.items() 

如果表單是有效的,我想用表單數據創建一個新的模式。我會怎麼做?我試圖看Django文檔(https://docs.djangoproject.com/en/dev/topics/forms/),但我找不到答案。

+0

你應該回到文檔。 – danihp 2012-02-08 08:12:09

回答

3

正如David Wolever表示,採用ModelForms是明顯的方式。

您也可以通過cleaned_data詞典模型構造(假設字段相同):

def form_validate(request, form, model): 
    form = form(request.POST) 
    print form 
    if form.is_valid(): 
     print "the form is valid" 
     obj = model(**form.cleaned_data) 
     obj.save() 
    else: 
     # etc 

然而,ModelForms真的這樣做的最簡單的方法,但你可能有興趣閱讀Django的來源,看看他們是如何工作的。

+0

我知道這是一個古老的問題,但我從谷歌中遇到了這個問題,仍然有疑問:如果沒有「表單」,我們該做什麼,但只有表單* data *是因爲來自具有有效載荷的外部域的調用,這樣我們*只有*有POST數據才能使用? – 2016-12-16 22:33:14

相關問題