2011-01-27 44 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