在ModelFormset中设置初始值
问题描述:
根据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;
但不起作用。任何想法如何设置一个未绑定的字段的初始值?
非常感谢
答
这将运行对我来说:
for form in opendeal_formset:
form.fields['attach_deal_conversation'].initial=True
这不是文件说什么。它表示初始值不适用于*预先存在*实例的表单;它们确实适用于“额外”表单或尚未保存的表单。这是理想的,因为如果它是现有的实例,则希望其保存的数据最初显示,而不是默认的初始数据。 – 2012-08-03 19:41:12
嗯,我没有任何额外的形式。但是,我可以设置一个未绑定字段的初始值吗?我想我需要将它作为一个数组与内部的元组传递... – Houman 2012-08-03 19:45:55