У нас есть хрустящая форма, где мы хотим иметь возможность отображать разные поля в разных частях формы HTML
, однако мы не можем найти способ сделать это в Хрустящая документация. Ниже приведен некоторый слегка составленный код для иллюстрации того, что мы пытаемся сделать:
forms.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')
)
)
template.html
<body>
{% crispy form layout_1 %}
<!-- A big bunch of other html -->
{% crispy form layout_2 %}
</body>
Кто-нибудь знает, какой способ достичь этого?
Подходы, которые мы рассмотрели до сих пор, должны были исключить:
- Мы могли бы вручную добавлять поля в наш HTML вместо того, чтобы хрустящие визуализировать их для нас. Тем не менее, это выглядит не-go, потому что у нас есть несколько полей
choice
, опции которых определяются программно. - Мы могли бы написать хрустящий макет, который использует объект
crispy.forms.layout.HTML
для включения HTML, который разбивает две разные части нашего макета. Тем не менее, существует много HTML, и это будет трудно поддерживать, если мы встроили его непосредственно в python. - Мы могли бы написать Пользовательский объект макета, чтобы сделать это для нас, однако мы прогнозируем, что это будет весьма вовлекать и хотеть считать это последним курорт.
- Мы могли бы просто не использовать хрустящие, и вместо этого искать пути вне хрустящих, чтобы достичь этого, но тогда мы потеряем согласованность со всеми другими формами в нашем приложении.