2016-04-23 75 views
0

我正在使用crispy-forms進行簡單構建,但field-class屬性無法按預期方式工作。Django脆皮表單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> 

問題 我期待input領域有form-control類自動添加。

回答

2

field_class財產只適用於如果您使用bootstrap3模板包(而不是默認的bootstrap包)。檢查是否具有以下設置定義:

CRISPY_TEMPLATE_PACK = 'bootstrap3' 

事實上,一旦你設置合適的模板後面會插入一個form-control類默認情況下,所以你不需要手動設置它。