我们有一个清晰的表单,我们希望能够在表单模板的不同部分呈现不同的字段,但是我们在Crispy 文档HTML
中找不到这样做的方法。下面是一些稍微编造的代码来说明我们正在尝试做的事情:
表格.py
helper = FormHelper()
helper.layout_1 = Layout(
Div(
Field('field_1a'),
Field('field_1b')
)
)
helper.layout_2 = Layout(
Div(
Field('field_2a'),
Field('field_2b')
)
)
模板.html
<body>
{% crispy form layout_1 %}
<!-- A big bunch of other html -->
{% crispy form layout_2 %}
</body>
有谁知道实现这一目标的干净方法?
到目前为止,我们已经研究过的方法必须排除:
- 我们可以在 HTML 中手动添加字段,而不是让脆皮为我们渲染它们。但是,这看起来是不行的,因为我们有许多
choice
字段的选项是通过编程方式确定的。 - 我们可以编写一个清晰的布局,它使用一个
crispy.forms.layout.HTML
包含 HTML 的对象来分割我们布局的两个不同部分。但是,有很多 HTML,如果我们将其直接嵌入到 python 中,将变得难以维护。 - 我们可以编写一个自定义布局对象来为我们执行此操作,但是我们预测这将非常复杂,并希望将其视为最后的手段。
- 我们可以不使用crispy,而是寻找crispy 之外的方法来实现这一点,但这样我们就会失去与应用程序中所有其他形式的一致性。