4

形式:

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:

例子

        ...
        <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>
        ...

为了使用日历图标作为bootstrap-datepicker触发器,我需要将新的课程日期添加到<div class="input-group">.

如何使用django-crispy-forms实现它?

目前AppendedText的属性css_class应用于 INPUT 元素而不是父 DIV。

天呐!

4

3 回答 3

1

使用以下 JavaScript:

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

最接近的 div 将是“输入组”div。Bootstrap-datetimepicker 将负责将“日期”类添加到“输入组”div。

于 2014-06-20T03:46:55.240 回答
1

您可以使用

self.helper.field_class = 'input-group'

这将为此表单中的所有字段生成带有“输入组”的 css 类。

于 2013-11-26T12:50:31.793 回答
1

基于Daria 的回答,我将 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
    }
);

注意 - Crispy 表单将创建一个以div_id_start_date表单组命名的元素,因此您需要将外部 div 称为不同的名称。

于 2015-10-03T00:08:55.673 回答