2016-12-19 34 views
0

我一直在努力使用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' 

,但沒有什麼區別。

回答

0

我發現了一個基於this post in github的解決方案。

這是通過使用FormActions相適應的佈局對象:

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