2016-04-23 60 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类默认情况下,所以你不需要手动设置它。