1
我在模板表单中部署的formset中隐藏字段的初始值有问题。只有第一种形式在隐藏字段中具有初始值,其他字段为空。Formset隐藏字段的初始值
的的ModelForm是:
class md_changelogFormModel(forms.ModelForm):
post_docs = forms.CharField(widget=forms.HiddenInput(),
initial="READY_FOR_RUN")
# Other fields
class Meta:
model = md_changelog
fields = '__all__'
同样的模型md_changelog以基于在BaseInlineFormSet形式使用:
class md_changelogForm(BaseInlineFormSet)
class Meta:
model = md_changelog
fields = '__all__'
而且一个formset类与inlineformset_factory创建:
md_changelogFormSet = inlineformset_factory(md_orderlog, md_changelog,
form=md_changelogFormModel,
formset=md_changelogForm,
extra=1, max_num=20)
而formset类是在基于类的视图中实例化的:
def get(self, request, *args, **kwargs):
"""
Handles GET requests and instantiates blank versions of the form
and its inline formsets.
"""
self.object = None
form_class = self.get_form_class()
form = self.get_form(form_class)
md_changelog_form = md_changelogFormSet(initial=[{'post_docs':'READY_FOR_RUN'}])
return self.render_to_response(
self.get_context_data(form=form,
md_changelog_form=md_changelog_form))
的问题是,当交函数接收request.POST,只隐藏字段在该formset数据的第一形式填充有初始值的post_docs,其余没有。
如何初始化其他表单?
谢谢!
Thanks !,但是在表单中我们用jQuery Formset pluguin添加了新的表单,在这种情况下,我们需要为javascript分配隐藏的字段值? –
我没有测试它的可能性,但从本质上来说,您可以更改给定formset中新字段的初始化方式。看看这个问题 - [http://stackoverflow.com/questions/1500121/django-how-to-set-initial-values-for-a-field-in-an-in-line-model-formset](http ://stackoverflow.com/questions/1500121/django-how-to-set-initial-values-for-a-field-in-an-inline-model-formset) - 这应该可以解决你的问题。 – user1544500