Как распределить поля формы по двум колонкам в django-crispy-формах?
Я получил несколько рекомендаций использовать django-crispy-формы для создания форм в Django.
Я искал пару часов в документации и не могу понять, как распределить поля формы по двум столбцам.
Глядя на этот пример здесь
helper = FormHelper()
helper.form_class = 'form-horizontal'
helper.layout = Layout(
Field('text_input', css_class='input-xlarge'),
Field('textarea', rows="3", css_class='input-xlarge'),
'radio_buttons',
...
)
Я вижу, как можно настроить последовательность появления. Но макет все равно ничем не отличается от простого {{ form.as_p }}
, Надеюсь, мне здесь чего-то не хватает, иначе мало пользы в использовании этого дополнения?
2 ответа
Убедитесь, что у вас есть файлы начальной загрузки css, приложение добавлено в INSTALLED_APPS
,
Затем вы должны включить теги django-crispy-forms, делая {% load crispy_forms_tags %}
в вашем шаблоне и, наконец, сделать {% crispy form %}
как в примере. Все, что показано в приведенном вами примере. Это должно привести к горизонтальной форме.
Ничто близко к as_p
, это настраиваемый макет, не нужно писать шаблоны, что очень подвержено ошибкам. Эти слайды могут помочь вам.
Я только использовал django-crispy-forms
кратко, и я не использовал его с помощником формы. Ниже написано с использованием мако-шаблонов, но вы должны быть в состоянии достаточно легко перенести это на шаблонизацию Django.
<form class="form-horizontal">
<fieldset>
%if form.non_field_errors():
<div class='alert alert-error'>${form.non_field_errors()}</div>
%endif
${form.as_crispy}
<div class="form-actions">
<button type="submit" class="btn btn-primary" id="some-id">
Find
</button>
<button type="reset" class="btn" id="clear-filter">
Clear
</button>
</div>
</fieldset>
</form>
Это отрисовало форму с использованием наборов полей, что в значительной степени является стандартным способом отображения форм с помощью twitter-bootstrap. Используйте помощников (я думаю..) только если рендеринг по умолчанию не работает для вас. У меня нет