Python django FormView中的Multiple.save()

Python django FormView中的Multiple.save(),python,django,formview,Python,Django,Formview,我正试图让用户更容易地只输入两个日期,然后以形式_valid()计算日期。数据库模型接受每天作为单独的记录 def form_valid(self, form): time = form.cleaned_data['begin_time'] end_time = form.cleaned_data['end_time'] is_first_day = True while time + timedelta(hours=24) < end_time:

我正试图让用户更容易地只输入两个日期,然后以形式_valid()计算日期。数据库模型接受每天作为单独的记录

def form_valid(self, form):

    time = form.cleaned_data['begin_time']
    end_time = form.cleaned_data['end_time']
    is_first_day = True

    while time + timedelta(hours=24) < end_time:
        data = form.save(commit=False)
        data.begin_time = time
        data.end_time = time + timedelta(hours=24)
        data.is_first_day = is_first_day
        data.save()
        is_first_day = False
        time = time + timedelta(hours=24)

    data = form.save(commit=False)
    data.settlement = settlement
    data.begin_time = time
    data.end_time = end_time
    data.is_first_day = is_first_day
    data.save()

    return super(FormView, self).form_valid(form)
def form_有效(self,form):
时间=表单。已清理的\u数据['begin\u time']
end_time=表单。已清理的_数据['end_time']
第一天是真的吗
时间+时间增量(小时=24)<结束时间:
data=form.save(commit=False)
data.begin\u time=时间
data.end_时间=时间+时间增量(小时=24)
data.is_first_day=is_first_day
data.save()
第一天=假吗
时间=时间+时间增量(小时=24)
data=form.save(commit=False)
data.consolution=结算
data.begin\u time=时间
data.end\u time=结束时间
data.is_first_day=is_first_day
data.save()
返回super(FormView,self)。form\u有效(form)

不幸的是,只剩下最后一天了。是否有可能在FormView中多次执行data.save(),而不重写它?

我认为您不应该依赖于
form.save()
,而尝试保存不同的记录。您应该使用
Model.objects.create()
来创建新记录。

您试图如何处理第一次和最后一次计算之间的差异?我正在以表单形式传递一些其他信息,整个期间基本相同。在极少数情况下,用户可以在以后修改它,但是单独指定每天所需的工作量要小得多。那么form.save()比Model.objects.create()有什么优势呢?我怀疑它是出于某种原因提供的。