将Django模型中两个对象的值相乘

时间:2019-02-08 10:31:43

标签: python django

嘿,我正在使用一个Django项目,我想在Django模型中将两个不同对象的值相乘并将其存储到数据库中。

这是我的模型代码

from django.db import models
from django.utils import timezone
from master.models import Supplier

class RawItem(models.Model):
    item_code = models.AutoField(primary_key=True)
    item_name = models.CharField(max_length=100)
    item_price = models.PositiveIntegerField()
    item_Description = models.TextField()

    def __str__(self):
        return self.item_name

class PurchaseOrder(models.Model):
    raw_item = models.ForeignKey(RawItem, on_delete=models.CASCADE)
    quantity = models.PositiveIntegerField()
    total_prize = models.PositiveIntegerField(editable=False, blank=True, null=True)
    po_date = models.DateTimeField(default=timezone.now)
    supplier = models.ForeignKey(Supplier, on_delete=models.CASCADE)

    def save(self, *args, **kwargs):
        total_prize = self.raw_item.item_price * self.quantity
        super(PurchaseOrder, self).save(*args, **kwargs)

所以在这里我想将item_price与数量相乘 预先谢谢

1 个答案:

答案 0 :(得分:2)

要为当前实例设置total_prize,应使用self。就您而言:

def save(self, *args, **kwargs):
    self.total_prize = self.raw_item.item_price * self.quantity
    #^^^
    super(PurchaseOrder, self).save(*args, **kwargs)

您可以阅读更多详细信息understand self in python

class-objects的官方文档