我是Django的新手,现在我已经完成了7部分教程,我正在尝试在创建自己的应用程序时学习更多内容。
我的应用程序的一部分接受来自用户的输入,然后在产生输出之前需要一些非平凡的服务器端计算(例如,用户将经历一些等待)。因此,我不想一次性计算所有内容,而是希望有几个小表单,每个表单都将数据发送到服务器计算部分并等待它接收下一个。例如:
my_app :会有一个表格要求用户输入三个数字,它会从100减去第一个数字,然后将第二个数字加到结果中,最后将新结果乘以第三个数字输入:
e.g。
我的表格
1st:5
2ed:7
3rd:2
结果:(((100-5)+ 7)* 2)= 204
虽然上面的例子很简单,但我正在做的事需要一些时间(但是,如果它不是第一个字段,则取决于前一个结果的结果)。
我在这里学会了如何正确地发布视图帖子: Django: proper way to handle form with POST to the same page
那么当用户为表单的每个部分输入数据时,如何进行此序列计算? (并等到计算上一个结果或直到用户在继续之前发布下一个信息)
答案 0 :(得分:1)
我的第一个答案是"在会话中存储回复"。所以像这样:
question1.py
if form.is_valid():
request.session['height'] = height_calc(form.cleaned_data['height'])
question2.py:
if form.is_valid():
request.session['weight'] = weight_calc(request.session['height'],
form.cleaned_data['weight'])
question3.py:
if form.is_valid():
# now we have everything so do the final calculation
final_result = final_calc(request.session['height'],
request.session['weight'],
form.cleaned_data['favorite_color'])