在Crispy Forms formset中使用HTML

时间:2013-08-27 19:52:54

标签: django django-crispy-forms

我有以下FormHelper,我用它来渲染Django Crispy Forms中的formset。我对文档的理解表明,我最终应该得到一个带有两个HTML字段(名称,用户名)和两个输入字段的表单集,但似乎并非如此。事实上,我只有两个表单字段。

我不清楚如何将HTML添加到formset中,因为下面的代码似乎不能解决问题。

class ProposalFormSetHelper(FormHelper):
    def __init__(self, *args, **kwargs):
        super(ProposalFormSetHelper, self).__init__(*args, **kwargs)
        self.form_method = 'post'
        self.layout = Layout(
            HTML('{{ form.instance.proposal.name }}'),
            HTML('{{ form.instance.user.get_full_name }}'),
            Field('accepted', css_class='input-mini'),
            Field('rating', css_class='input-mini')
        )
        self.template = 'bootstrap/table_inline_formset.html'
        self.add_input(Submit('submit', 'Update'))

我应该注意到,我还尝试将FormHelper保留在表单中,并通过执行以下操作将其附加到{%crispy%}标记:{%crispy formset formset.form.helper%},但是这几乎有同样的影响。

1 个答案:

答案 0 :(得分:1)

我是crispy-forms的主要开发者

此处的问题是您使用的bootstrap/table_inline_formset.html目前不支持指定布局。

在文档中明确说明:http://django-crispy-forms.readthedocs.org/en/latest/crispy_tag_formsets.html#custom-templates-and-table-inline-formsets

  

此模板目前不考虑您指定的任何布局,仅适用于bootstrap模板包。

我知道这不是预期的行为,并且有一个未解决的问题。我希望本周能以某种方式解决它。