2
我想讓用戶輸入兩個日期,然後從form_valid()中計算他們的日子更容易。數據庫模型每天接受單獨的記錄。多個.save()在Django FormView
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)
不幸的是,只有最後一天被保存。有沒有可能在FormView中多次執行data.save()而不重寫它?
你想要對第一次和最後一次計算的區別做什麼? – Programmingjoe
我在表單中傳遞了其他一些信息,大部分時間都是一樣的。在極少數情況下,用戶稍後可以修改該功能,但只需單獨指定每一天即可省力。 – Dominik