Python 表单集隐藏字段的初始值

Python 表单集隐藏字段的初始值,python,django,hidden-field,modelform,formset,Python,Django,Hidden Field,Modelform,Formset,我对表单集中部署的模型表单中隐藏字段的初始值有问题。只有第一个表单在隐藏字段中具有初始值,其他表单为空 模型形式为: class md_changelogFormModel(forms.ModelForm): post_docs = forms.CharField(widget=forms.HiddenInput(), initial="READY_FOR_RUN") # Other fields clas

我对表单集中部署的模型表单中隐藏字段的初始值有问题。只有第一个表单在隐藏字段中具有初始值,其他表单为空

模型形式为:

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_工厂创建一个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时,只有表单集数据的第一个表单中的post_docs隐藏字段填充了初始值,其他字段没有

如何初始化其他表单


谢谢

如果需要为给定表单字段中的所有表单提供初始值,请查看文档:

因此,在我看来,为了使用相同的初始日期初始化所有3个字段,您应该将代码更改为:

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'},
       {'post_docs':'READY_FOR_RUN'},
       {'post_docs':'READY_FOR_RUN'},
   ])

   return self.render_to_response(self.get_context_data(form=form, md_changelog_form=md_changelog_form))

希望有帮助

如果需要为给定表单字段中的所有表单提供初始值,请查看文档:

因此,在我看来,为了使用相同的初始日期初始化所有3个字段,您应该将代码更改为:

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'},
       {'post_docs':'READY_FOR_RUN'},
       {'post_docs':'READY_FOR_RUN'},
   ])

   return self.render_to_response(self.get_context_data(form=form, md_changelog_form=md_changelog_form))

希望有帮助

谢谢!,但是在表单中,我们使用jQuery表单集插件添加了新表单,在这种情况下,我们需要使用javascript分配隐藏字段值?我不可能对其进行测试,但您可以更改给定表单集中新字段的初始化方式。看看这个问题--这应该能解决你的问题。谢谢!,但是在表单中,我们使用jQuery表单集插件添加了新表单,在这种情况下,我们需要使用javascript分配隐藏字段值?我不可能对其进行测试,但您可以更改给定表单集中新字段的初始化方式。看看这个问题--这应该能解决你的问题。