Как распределить поля формы по двум колонкам в 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. Используйте помощников (я думаю..) только если рендеринг по умолчанию не работает для вас. У меня нет

Другие вопросы по тегам