2012-08-03 76 views
0

根據documentation爲綁定到模型的字段提供初始值是不可能的。在ModelFormset中設置初始值

在我的模型形式,雖然我已經創建了一個額外的未綁定字段:

class DealCForm(ModelForm): 
    attach_deal_conversation = forms.BooleanField(required=False, initial=False) 

因此,我想,如果某些條件得到滿足來設置這個值。

查看:

deal_formset = modelformset_factory(Deal, form=DealCForm, extra=0) 

if (request.POST) 
     pass 
else:     
     opendeal_formset = deal_formset(queryset=formset_query) 
variables = RequestContext(request, {'opendeal_formset' : opendeal_formset) 
return render_to_response('conversation.html', variables) 

在視圖中,只需將它發送到模板之前,我已經建立直接的價值,但它不工作:

for dfm in deal_formset: 
      for odfm in opendeal_formset: 
       if dfm.pk == odfm.pk: 
        odfm.attach_deal_conversation = True; 

但不起作用。任何想法如何設置一個未綁定的字段的初始值?

非常感謝

+0

這不是文件說什麼。它表示初始值不適用於*預先存在*實例的表單;它們確實適用於「額外」表單或尚未保存的表單。這是理想的,因爲如果它是現有的實例,則希望其保存的數據最初顯示,而不是默認的初始數據。 – 2012-08-03 19:41:12

+0

嗯,我沒有任何額外的形式。但是,我可以設置一個未綁定字段的初始值嗎?我想我需要將它作爲一個數組與內部的元組傳遞... – Houman 2012-08-03 19:45:55

回答

0

這將運行對我來說:

for form in opendeal_formset: 
    form.fields['attach_deal_conversation'].initial=True