我有一个表单,用于从模型中的日期时间字段中分割日期和时间。
class MyForm(forms.ModelForm):
class Meta:
model = MyModel
fields = ('name', 'description', 'start', 'end',)
widgets = {
'start': forms.SplitDateTimeWidget(),
'end': forms.SplitDateTimeWidget(),
}
如何将datepicker和timepicker添加到呈现的每个单独的输入框?
环境:
'start': forms.SplitDateTimeWidget(attrs={'type': 'date'})
使两个输入都为datepicker,但我需要第二个作为时间戳..
我正在使用Django 2.0,bootstrap和crispy表单
答案 0 :(得分:4)
forms.SplitDateTimeWidget()呈现一个Html输入,其中可能包含模板中需要的一些属性:
forms.SplitDateTimeWidget(attrs={'attrs': 'attrs'})`.
# You don't need to edit the "input:type", type text is good
渲染将是那样的
<input type='text' name='field_name_0' id='id_field_name_0' attrs='attrs'>
<input type='text' name='field_name_1' id='id_field_name_1' attrs='attrs'>
根据documentation, Django 2中的新内容。*
您可以添加单独的属性。
# Free to add attributes that you want
'start': forms.SplitDateTimeWidget(
date_attrs({'class':'datepicker'}), # or override the ID, "id":id
time_attrs({'class':'timepicker'}),
)
由于我不知道您在项目中使用的日期时间类型 Timepicker 。因此,在js
中,按照常规名称class
...
$(".datepicker").datepicker();
$(".timepicker").timepicker();