django-crispy-forms:垂直对齐按钮

时间:2016-12-19 14:14:13

标签: django-forms django-crispy-forms

我一直在努力使用django-crispy-forms将我的表单(包括按钮)放在一行中。

我最终找到了解决方案,但我决定将问题与答案一起发布,以防其他人面临同样的问题。

forms.py中的代码如下:

class SearchForm(forms.Form):
    [...]

    def __init__(self, *args, **kwargs):
        super(SearchForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.form_class = 'form-inline'

        self.helper.layout = Layout(
                    Field('From', placeholder='From'),
                    Field('To', placeholder='To'),
                    Field('Date', placeholder='Date'),
                    ButtonHolder(Submit('submit', 'Search', css_class='btn btn-primary'))
        )

但按钮出现在第二行。

button appears in a second line

我尝试了另类

self.helper.form_class = 'form-horizontal'

但没有区别。

1 个答案:

答案 0 :(得分:0)

我找到了一个基于this post in github的解决方案。

这是通过使用FormActions对象来调整Layout:

self.helper.layout = Layout(
            Field('From', placeholder='From'),
            Field('To', placeholder='To'),
            Field('Date', placeholder='Date'),
            FormActions(ButtonHolder(Submit('submit', 'Search', css_class='btn btn-primary')))
        )

所有字段和按钮完全对齐:

desired result, all fields and button in one line