首页 > 解决方案 > 在 django 模型中保存之前的数据处理

问题描述

我想在 Django 模型中创建一个自动化站点,作为一个自动化的如果用户输入单位和数量也不好输入,我想你明白我的意思。我的模型看起来像这个 model.py:

    unit_price = models.FloatField(max_length=24)
    quantity = models.FloatField(max_length=24)
    total_price = models.FloatField(max_length=24)

视图.py:

    posted = dataForm(request.POST)
    if posted.is_valid():
        posted.save()

我想要的是用户输入quantity并且unit_price只有和

total_price = quantity * unit_price

那么我该怎么做呢?

标签: pythondjango

解决方案


AModelForm包装.instance将被保存的,因此您可以操作该.instance对象:

posted = dataForm(request.POST)
if posted.is_valid():
    item = posted.instance
    item.total_price = item.quantity * item.unit_price
    posted.save()

话虽这么说,如果total_price始终是quantitytime toe unit_price,则无需将其保存在模型中,您可以在需要时进行计算,或者使用.annotate(…)[Django-doc]在数据库端进行计算。


推荐阅读