首页 > 解决方案 > 在 Django 中将两个不同模型的值相乘

问题描述

好吧,我正在尝试创建两个模型,而产品模型是:

class Product(models.Model):
    id = models.AutoField(primary_key=True)
    price = models.FloatField(null=False)
    inStock = models.BooleanField(null=False)
   

和另一个购物车模型,其中:

class Cart(models.Model):
    productID = models.ForeignKey(Product,on_delete=models.CASCADE)
    quantity = models.IntegerField()
    total

我希望这里的总数等于 Product.price 乘以 Cart.quantity 有没有办法在 Django 上实现它?

标签: djangodjango-modelsdjango-rest-framework

解决方案


您可以使用@property 装饰器

class Cart(models.Model):
    productID = models.ForeignKey(Product,on_delete=models.CASCADE)
    quantity = models.IntegerField()

    @property
    def total(self):
        return self.quantity * self.productID.price

要在序列化程序中使用,您可以尝试以下操作:

total = serializers.SerializerMethodField()

def get_total(self, obj):
    return obj.total

推荐阅读