这是我在models.py中的模型
class Purchase(models.Model):
Purchase_id = models.AutoField(verbose_name='Purchase ID',primary_key=True)
Employee_id = models.ForeignKey(Employee, on_delete= models.CASCADE,verbose_name='Employee ID')
Distributor_id = models.ForeignKey(Distributor, on_delete= models.CASCADE,verbose_name='Distributor ID')
Date_of_Purchase= models.DateField(verbose_name='Date Of Puchase',validators=[datevalid])
Discount_in_percentage = models.FloatField(verbose_name='Discount(in percent)',validators=[nonneg,MaxValueValidator(100,'Discount can not be more than 100%%')])
Tax_in_percentage = models.FloatField(verbose_name='Tax(in percent)',validators=[nonneg])
Total_amount = models.FloatField(verbose_name='Total Amount',validators=[nonneg])
Products=models.ManyToManyField(Products,through='Purchase_Consists_of')
objects = models.Manager()
def __str__(self):
return str(self.Purchase_id)
class Meta:
verbose_name_plural='Purchase'
db_table='Purchase'
class Products(models.Model):
Prod_code = models.AutoField(verbose_name='Product Code',primary_key=True)
Product_name = models.CharField(verbose_name='Product Name',max_length=100)
Quantity = models.CharField(verbose_name='Quantity(kg/L)',max_length=20)
Rate = models.FloatField(verbose_name='Rate(per unit)',validators=[nonneg])
Colour = models.CharField(verbose_name='Colour', max_length=50)
Product_description = models.CharField(verbose_name='Product Description', max_length=50)
Stock_level = models.IntegerField(verbose_name='Stock Level',validators=[nonneg])
Shelf_life = models.IntegerField(verbose_name='Shelf Life',null=True,blank=True,validators=[nonneg])
objects = models.Manager()
def __str__(self):
return str(self.Prod_code)
class Meta:
verbose_name_plural='Product'
db_table='Products'
class Purchase_Consists_of(models.Model):
Purchase_id = models.ForeignKey(Purchase, on_delete= models.CASCADE,verbose_name='Purchase ID')
Prod_code = models.ForeignKey(Products, on_delete= models.CASCADE,verbose_name='Product Code')
Quantity=models.CharField(verbose_name='Quantity',max_length=20)
objects = models.Manager()
def __str__(self):
return str(self.Purchase_id)
class Meta:
verbose_name_plural='Purchase Consists of'
db_table='Purchase_Consists_Of'
unique_together=(('Purchase_id'),('Prod_code'),)
当我在“产品”和“ Purchase_Consists_Of”表中输入“费率和数量”的值时,我希望“购买总额”模型自动计算并保存在数据库中。
这种关系是这样的:Purchase.Total_amount = Products.Rate * Purchase_Consists_Of.Quantity。
有什么办法吗?