我在models.py中编写了一个函数,该函数将计算百分比。但是它没有显示计算出的值。
我在models.py中编写了一个名为“ cal_amount”的函数来执行计算。将值返回到模型字段。但是当我打电话时它显示为None。
class Course(models.Model):
price = models.FloatField("Price", blank=True, null=True)
voucher_id = models.CharField(max_length=255,blank=True, null=True)
voucher_amount = models.IntegerField(blank=True, null=True)
discounted_amount = models.IntegerField(blank=True, null=True)
def __str__(self):
return self.course_name
def cal_amount(self):
self.discounted_amount = (self.voucher_amount/100)*self.price
return self.discounted_amount
我想要的是计算出的金额,要存储在Discounted_amount中。因此我可以在html中使用{{obj.discounted_amount}}来查看它以及实际价格。请给我建议一种方法。
答案 0 :(得分:0)
您可以使用属性代替模型中的字段。
class Course(models.Model):
price = models.FloatField("Price", blank=True, null=True)
voucher_id = models.CharField(max_length=255,blank=True, null=True)
voucher_amount = models.IntegerField(blank=True, null=True)
def __str__(self):
return self.course_name
@property
def discounted_amount(self):
return (self.voucher_amount/100)*self.price
course = Course.objects.get(id=1)
course.discounted_amount # returns the calculated discount
请记住,您将整数与浮点数混合在一起进行计算