2011-01-27 73 views
0

目前看:http://docs.djangoproject.com/en/dev/topics/forms/modelforms/Django的表單集屬性編輯

我目前正試圖創建一個簡單的產品形態,在這裏筆者/用戶在創建產品是後來添加的。我的代碼如下:

ProductFormSet = modelformset_factory(Product, exclude=('pub_date', 'author')) #handle categories separately/ via JSON feed 

if request.method == 'POST': 
    formset = ProductFormSet(request.POST, request.FILES) 

    if formset.is_valid(): 
     new = formset.save(commit=False) 
     new.author = request.user 
     new.save() 
     return HttpResponse("DONE!!") 

不過,我得到一個屬性錯誤作爲「新」似乎是返回一個空的列表,而不是新形式對象的實例。我在哪裏錯了?

非常感謝,

亞當

+0

基本上就是把代碼從Django文檔.. 「形式= PartialAuthorForm(request.POST) 作者= form.save(提交= FALSE) author.title = '先生' author.save()」 ,但是這並未似乎沒有工作? – null 2011-01-27 09:19:58

+0

請勿將評論添加到您自己的帖子中 - 編輯它。 – 2011-01-27 09:25:24

回答

0

你似乎是混亂的表單或表單集。

表單用於編輯單個實例,並且form.save()(在模型表單的情況下)返回保存的實例。

formset用於編輯多個實例。 formset.save()返回保存的實例列表。顯然,該列表本身沒有author屬性 - 它是該列表中的每個實例。所以你需要遍歷列表並在每個項目上設置author