django - 在 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 上实现它?
解决方案
您可以使用@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
推荐阅读
- javascript - 为什么谷歌recaptcha不允许我点击移动版chrome开发者工具中的复选框
- java - MySQL JDBC 查询比 JMH 测试中的查询要快得多
- php - SQL操作VS wp_update_term_count_now()相关问题
- javascript - Auto Scramble Chrome Cube 实验室?
- laravel - 如何让 LaraDock 使用 yum 而不是 apt-get?
- android - 在装有 Android 8.0 的三星设备上在 RTL 中格式化“%d - %d”时出现错误
- python - Python virtualenv 需要和它所属的项目在同一个地方创建?
- python - 防止 FileExistsError 的功能
- c++ - 为什么这段代码只识别文本文件中的第一行?输入任何大于 1 的数字都会返回“未找到原子序数”
- eclipse - Spring Tool Suite:@Configuration 类可能不是最终的。删除 final 修饰符以继续