我想为我的 Django 项目使用这个日期范围选择器
问题是我不知道在服务器端(Django)我必须做什么?
可能是创建某种小部件?
可能是子类widgets.MultiWidget?
我认为这个小部件必须表现得像两个 DateTimeFields?
Django可以做到这一点吗?
我想为我的 Django 项目使用这个日期范围选择器
问题是我不知道在服务器端(Django)我必须做什么?
可能是创建某种小部件?
可能是子类widgets.MultiWidget?
我认为这个小部件必须表现得像两个 DateTimeFields?
Django可以做到这一点吗?
我必须这样做;所以我在这里分享代码。它基本上重用了 Django DateField
。
class DateRangeField(forms.DateField):
def to_python(self, value):
values = value.split(' - ')
from_date = super(DateRangeField, self).to_python(values[0])
to_date = super(DateRangeField, self).to_python(values[1])
return from_date, to_date
和
date_range = DateRangeField(required=False,
widget=forms.TextInput(attrs={'placeholder': _('from'),
'class': 'form-control datepicker'}))
鉴于示例输出是
MM/DD/YYYY - MM/DD/YYYY
这将发布到您的视图中。我会自己处理而不是使用 Django 表单,并将其存储在两个 DateFields 中。类似这样的东西:
date_range = request.POST['date_range']
start_date_string = date_range.split(' - ')[0]
end_date_string = date.range.split(' - ')[1]
这将为您提供所需的两个字符串,然后只需将它们传递到 DateFields 并保存即可。