【发布时间】:2015-12-29 23:16:54
【问题描述】:
我对部署在表单集中的模型表单中隐藏字段的初始值有疑问。只有第一个表单在隐藏字段中具有初始值,其他表单为空。
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__'
在基于BaseInlineFormSet的表单中使用相同的模型md_changelog:
class md_changelogForm(BaseInlineFormSet)
class Meta:
model = md_changelog
fields = '__all__'
并使用 inlineformset_factory 创建一个 formset 类:
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))
问题是post函数接收到request.POST时,只有formset数据的第一个表单中的post_docs隐藏字段填入初始值,其他没有。
如何初始化其他表单?
谢谢!
【问题讨论】:
标签: python django hidden-field modelform formset