Во-первых, вам нужно различить guish между вычислением Monthly_Depreciation
и Current_Cost
значений в коде python и их наличием в вашей базе данных.
Рассчитайте их в коде запросить добавление соответствующих методов, таких как:
class Asset(models.Model):
Asset_description=models.TextField(max_length=100)
Tag_number=models.TextField(unique=True)
Asset_Cost=models.IntegerField(default=0)
Monthly_Depreciation=models.IntegerField(default=0)
Current_Cost=models.IntegerField(default=0)
def __str__(self):
return self.Asset_description
def get_monthly_deprecation(self):
return self.Asset_Cost / 3.0 / 12.0
def get_current_cost(self):
return self.Asset_Cost - self.Monthly_Depreciation
И тогда вы сможете вызывать их:
asset: Asset = ...
monthly_deprecation = asset.get_monthly_deprecation()
current_cost = asset.get_current_cost()
Однако , что не обновит значения в базе данных . Для обновления вы хотите явно изменить поля модели и затем сохранить модель. Это может быть включено в метод класса Asset
:
class Asset(models.Model):
...
def update_costs(self):
self.Monthly_Depreciation = self.get_monthly_deprecation()
self.Current_Cost = self.get_current_cost()
self.save() # This method will execute the actual UPDATE SQL statement
После вызова этого update_costs
вы получите обновленную запись в базе данных:
asset: Asset = ...
asset.update_costs()
# Now both the model and the database should contain
# the calculated values, so you could use them as:
asset.Monthly_Deprecation
asset.Current_Cost