2013-10-11 102 views
4

形式:Django的脆皮形式:设置CSS类AppendedText父DIV

class StartEndDateEpayOperatorsForm(forms.Form): 

    ... 

    def __init__(self, *args, **kwargs): 
     super(StartEndDateEpayOperatorsForm, self).__init__(*args, **kwargs) 
     self.helper = FormHelper() 

     ... 

     self.helper.layout = Layout(
      AppendedText('start_date', '<span class="glyphicon glyphicon-calendar"></span>', active=True, css_class='date'), 
      ... 
     ) 

表HTML:

Example

 ... 
     <div class="input-group"> 
      <input id="id_start_date" type="text" class="date dateinput form-control" value="2013-10-01" name="start_date"> 
      <span class="input-group-addon active"> 
       <span class="glyphicon glyphicon-calendar"></span> 
      </span> 
     </div> 
     ... 

为了使用日历图标as bootstrap-datepicker trigger 我需要添加新类日期<div class="input-group">

我该如何实现django-crispy-forms

目前的AppendedText的属性css_class aplying到INPUT元素不是父DIV。

Tnx!

回答

1

您可以使用

self.helper.field_class = 'input-group' 

这将产生与本表的所有字段“输入组” CSS类。

1

使用以下的javascript:

$('.datetimeinput').closest('div').datetimepicker(); 

最接近的股利将是 '输入组' 股利。 Bootstrap-datetimepicker将负责将'date'类添加到'input-group'div。

1

大厦Daria's answer,我通过一个id(div_id_start_date_container)到容器的div如下:

Div(AppendedText('start_date', 
       '<span class="glyphicon glyphicon-calendar" </span>', active=True), 
    css_class='date col-sm-4 col-sm-offset-1', 
    css_id='div_id_start_date_container' 
), 

我然后经由ID,而不是依靠该closest函数直接包裹此。

$('#div_id_start_date_container').datepicker({ 
     format: "yyyy-mm-dd", 
     autoclose: true, 
     todayHighlight: true 
    } 
); 

注 - 脆皮形式将创建一个名为div_id_start_date的形式族元素,所以你需要调用外层div不同的东西。