Django: Метод сохранения для сохранения всего 3 строк в другой модели

У меня есть 2 следующие модели:

class particulars(models.Model):
    reportref = models.ForeignKey(reportname,on_delete=models.CASCADE)
    year = models.CharField(max_length=250) 
    sales = models.FloatField(blank=True,null=True,default=0)
    profit = models.FloatField(blank=True,null=True,default=0)
    
    def save(self, *args, **kwargs):
        self.profit = round((self.sales-self.depreciation),2) 
        super(particulars, self).save(*args, **kwargs)
    
    def __str__(self):
        return str(self.year)

class depreciation(models.Model):
    reportn = models.ForeignKey(reportname,on_delete=models.CASCADE)
    asset = models.CharField(max_length=250)
    cost = models.FloatField(blank=True,null=True,default=0)
    rate = models.FloatField(blank=True,null=True,default=10)
    depreciation_1 = models.FloatField(blank=True,null=True)
    wdv1 = models.FloatField(blank=True,null=True)
    depreciation_2 = models.FloatField(blank=True,null=True)
    wdv2 = models.FloatField(blank=True,null=True)
    depreciation_3 = models.FloatField(blank=True,null=True)
    wdv3 = models.FloatField(blank=True,null=True)
    depreciation_4 = models.FloatField(blank=True,null=True)
    wdv4 = models.FloatField(blank=True,null=True)
    depreciation_5 = models.FloatField(blank=True,null=True)
    wdv5 = models.FloatField(blank=True,null=True)
    
    def save(self, *args, **kwargs):
        self.depreciation_1 = round((self.cost*self.rate/100),2)
        self.wdv1 = round((self.cost-self.depreciation_1),2)
        self.depreciation_2 = round((self.wdv1*self.rate/100),2)
        self.wdv2 = round((self.wdv1-self.depreciation_2),2)
        self.depreciation_3 = round((self.wdv2*self.rate/100),2)
        self.wdv3 = round((self.wdv2-self.depreciation_3),2)
        self.depreciation_4 = round((self.wdv3*self.rate/100),2)
        self.wdv4 = round((self.wdv3-self.depreciation_4),2)
        self.depreciation_5 = round((self.wdv4*self.rate/100),2)
        self.wdv5 = round((self.wdv4-self.depreciation_5),2)  
        super(depreciation, self).save(*args, **kwargs)
    
    def __str__(self):
        return str(self.asset)

Я написал метод сохранения для обновления амортизации для каждого года, когда пользователь вводит стоимость активов. Однако мне нужно также обновить модель particulars с амортизацией за каждый год. Я пытаюсь получить суммарную амортизацию каждого актива за каждый год и поместить ее в таблицу particulars. Есть ли способ сделать это?

Вернуться на верх