从表单计算用户输入并显示结果 - Django

时间:2021-07-31 09:47:37

标签: python django

我有一个表格来计算邮政托盘的重量 - 表格有效,当我提交时,它会进入数据库。但是,我现在想做的是获取在这些字段中提交的信息并进行一些数学运算以给出他们需要的计算。

views.py

@login_required
def tray_calc_view(request):
    model = TrayCalcModel
    tray_form = TrayCalcForm()
    if request.method == "POST":
        tray_form = TrayCalcForm(request.POST)
        if tray_form.is_valid():
            tray_form.save(commit=True)
            return redirect('tray_weight')
    return render(request, "tray_weight_calculator.html", {'tray_form': tray_form})

models.py

class TrayCalcModel(models.Model):
    sheets = models.IntegerField(max_length=30)
    paper_weight = models.IntegerField(max_length=30)

我想提交表单,它会将我带到一个新页面,其中包含已填写的表单和一个包含计算在内的框。我希望能够在此页面上更新该表单并重新计算更新该计算。

urls.py

path('tray-weight-calculator/', tray_calc_view, name="tray_weight"),

我的表格在托盘重量计算器/我希望计算表格在托盘重量计算器/计算重量

我需要如何设置我的 views.py 才能做到这一点?

1 个答案:

答案 0 :(得分:0)

您必须在 form.is_valid() 之后添加一个cleaned_data.get 方法,您还可以在模型类中添加第三个字段调用结果以将结果保存到模型中:

def tray_calc_view(request):
    model = TrayCalcModel
    tray_form = TrayCalcForm()
    if request.method == "POST":
        tray_form = TrayCalcForm(request.POST)
        if tray_form.is_valid():
            sheets = tray_form.cleaned_date.get('sheets')
            paper_weight = tray_form.cleaned_data.get('paper_weight')
            calculation = int(sheets) * int(paper_weight)
            tray_form.save(commit=True)
            return redirect('tray_weight')
    return render(request, "tray_weight_calculator.html", {'tray_form': tray_form})
相关问题