2016-12-19 4 views
0

django-crispy-formsを使用してフォーム(ボタンを含む)をたった1行にまとめるのに苦労しました。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')) 
     ) 

しかし、ボタンが2行目に表示されていました。

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

関連する問題