2012-02-29 54 views
1

我知道,我们可以通过这种方式Django的勘定的BoundField价值

form = ItemFormAdmin 
value = form['somekey'].value() 

但我怎么能值分配给一个BoundField访问表单绑定列值?我想这样

form = ItemFormAdmin 
form['somekey'] = value 

但它说'ItemForm' object does not support item assignment

回答

3

Assinging值BoundField没有意义。表单已经提交,用户不会看到你的价值。

如果您想在字段值出现在cleaned_data之前改变字段值,请覆盖somekey_cleanclean方法。

如果你想设置的初始值(的东西,在输入表单提交前)使用这个(形式的__init__

form.fields['somekey'].initial = value 

编辑1

class MyForm(forms.Form): 
# ... 

    def clean(self): 
     cleaned_data = super(MyForm, self).clean() 

     # get "some info from the form" 
     part1 = cleaned_data.get('part1_field', '') 
     part2 = cleaned_data.get('part2_field', '') 

     # "manipulate it to fill another filed" 
     cleaned_data['another_field'] = part1 + part2 

     return cleaned_data 
+1

我想设置的值提交之后但save()方法之前。你能举例说明如何做到这一点?目前我正在'save_model()'方法中完成它。这个想法是,我需要从表单中获取一些信息,并在提交之前操纵它以填充同一表单的另一个字段。 – 2012-02-29 05:29:03

+0

@HaikalNashuha查看我的编辑 – DrTyrsa 2012-02-29 06:00:40

+0

它的作品!终于在几小时后! – 2012-02-29 06:49:09