2012-02-29 42 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