转换日期的优雅方式

时间:2013-03-14 15:55:37

标签: python django

与django合作,我有以下表格

class ReportDataForm(forms.Form):
start_date = forms.DateField(input_formats=settings.DATE_INPUT_FORMATS)
end_date = forms.DateField(input_formats=settings.DATE_INPUT_FORMATS)

我的日期字段具有以下格式:“mm / dd / yy”与DATE_INPUT_FORMATS之一匹配

这些日期时间字段是通过GET请求提交的,用于查询。 现在,我的观点看起来很难看:

    if request.method == 'GET':
    form = ReportDataForm(request.GET)
    context={'form':form}
    if form.is_valid():
        start_date = datetime.strptime("%m/%d/%y")
        end_date = datetime.strptime("%m/%d/%y")
        report = Mymodel.objects.filter(date__gte=start_date)\
                                .filter(date__lte=end_date)

有没有办法避免这种转换或者在验证器中的某个地方进行转换,因为它与视图逻辑无关?

1 个答案:

答案 0 :(得分:1)

它已经为你完成了。只需访问form.cleaned_data['start_date']等。