2016-06-07 45 views
0

這裏是我的代碼:從參數數據獲取字段值和直接從request.POST獲取字段值的ModelForm實例有什麼區別?

from .forms import ImageCreateForm 


@login_required 
def image_create(request): 
    """ 
    View for creating an Image using the JavaScript Bookmarklet. 
    """ 
    if request.method == 'POST': 
     # form is sent 
     # ######## here is my issue #################### 
     form = ImageCreateForm(data=request.POST) 
     # ######## end of my issue #################### 
     if form.is_valid(): 
      ...... 
      # redirect to new created item detail view 
      return redirect(new_item.get_absolute_url()) 
    else: 
     # build form with data provided by the bookmarklet via GET 
     form = ImageCreateForm(data=request.GET) 

    return render(request, 'images/image/create.html', {'section': 'images', 'form': form}) 

的代碼塊是從實例書的Django的,但是當我在的Django的官方網站上,我讀到Modleform的一個實例是這樣創建的: https://docs.djangoproject.com/en/1.9/topics/forms/modelforms

的save()方法

# Create a form instance from POST data. 
>>> f = ArticleForm(request.POST) 

所以這裏是我的問題:什麼是從POST數據

創建一個表單實例的兩種方法之間的差異
+1

你爲什麼認爲有區別?這是標準的Python;形式'__init__'函數的第一個位置參數是'data',所以您可以通過位置或關鍵字來傳遞它。 –

+0

我明白了,非常感謝〜 – polar9527

回答

1

第一個位置參數的形式__init__功能的數據,所以我們可以把它位置上

f = ArticleForm(request.POST) 

或通過關鍵字

f = ArticleForm(data=request.POST) 

感謝丹尼爾·羅斯曼告訴我這一點。