2016-04-23 2 views
0

私はcrispy-formsでシンプルに構築していますが、field-classという属性は期待通りに機能しません。Django crispy-forms field_classが期待通りに機能しない

フォーム

class ArrivalForm(forms.Form): 
    def __init__(self, *args, **kwargs): 
     super(ArrivalForm, self).__init__(*args, **kwargs) 
     self.helper = FormHelper() 
     self.helper.form_id = 'arrival-form' 
     self.helper.form_class = '' 
     self.helper.form_method = 'POST' 
     self.helper.form_action = '' 
     self.helper.field_class = 'form-control' 

     self.helper.layout = Layout(
     Div(
      Div('passenger_name', css_class='col-md-6'), 
      Div('passenger_lastname', css_class='col-md-6'), 
      css_class='row'), 
     ) 

     self.helper.add_input(Submit('submit', 'Submit')) 

    passenger_name = forms.CharField(
     label = "Firstname:", 
     max_length = 80, 
     required = True, 
    ) 

    passenger_lastname = forms.CharField(
     label = "Lastname:", 
     max_length = 80, 
     required = True, 
    ) 

レンダリングされたHTML

<form id="arrival-form" method="post" name="arrival-form"> 
    <input name="csrfmiddlewaretoken" type="hidden" value= 
    "akxd0BVQrwaHbHr4FLjaDLz72BUUN9rQ"> 
    <div class="row"> 
     <div class="col-md-6"> 
      <div class="control-group" id="div_id_passenger_name"> 
       <label class="control-label requiredField" for= 
       "id_passenger_name">Firstname:<span class= 
       "asteriskField">*</span></label> 
       <div class="controls"> 
        <input class="textinput textInput" id="id_passenger_name" 
        maxlength="80" name="passenger_name" type="text"> 
       </div> 
      </div> 
     </div> 
     <div class="col-md-6"> 
      <div class="control-group" id="div_id_passenger_lastname"> 
       <label class="control-label requiredField" for= 
       "id_passenger_lastname">Lastname:<span class= 
       "asteriskField">*</span></label> 
       <div class="controls"> 
        <input class="textinput textInput" id= 
        "id_passenger_lastname" maxlength="80" name= 
        "passenger_lastname" type="text"> 
       </div> 
      </div> 
     </div> 
    </div> 
    <div class="form-actions"> 
     <input class="btn btn-primary" id="submit-id-submit" name="submit" 
     type="submit" value="Submit"> 
    </div> 
</form> 

問題 私はform-controlクラスが自動的に追加されているためにinputフィールドを期待しています。

答えて

2

field_classプロパティは、bootstrap3テンプレートパック(デフォルトのbootstrapパックではありません)を使用している場合にのみ機能します。あなたはそれがデフォルトでform-controlクラスを挿入します戻って右のテンプレートを設定したら、実際には

CRISPY_TEMPLATE_PACK = 'bootstrap3' 

を、あなたはまったくそれを手動で設定する必要はありません:あなたは、以下の設定が定義されているか確認してください。

関連する問題