嘿,我正在使用一个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与数量相乘 预先谢谢
答案 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的官方文档