2016-06-07 47 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) 

感谢丹尼尔·罗斯曼告诉我这一点。