Почему мой метод сохранения не возвращает никакого значения
<investment.basic_interest
<
class Investment(models.Model):
basic_deposit_amount = models.IntegerField(default=0, null=True)
basic_interest = models.IntegerField(default=0, null=True)
def save(self, *args, **kwargs):
self.basic_interest = self.basic_deposit_amount * 365 * 0.02/2 #calculated field.
super(Investment, self).save(*args, **kwargs)
Я получаю 0. Почему он возвращает 0? Мне кажется, что мой метод сохранения написан неправильно. Есть идеи, откуда берется проблема?
Вам нужно вернуть то, что делает метод super()
. Добавьте return
к последней строке:
def save(self, *args, **kwargs):
self.basic_interest = self.basic_deposit_amount * 365 * 0.02/2 #calculated field.
return super(Investment, self).save(*args, **kwargs)
В зависимости от того, где вы проверяете значение investment.basic_interest
в вашем коде. Приведенный вами фрагмент кода выполняется только при сохранении экземпляра (после вызова метода save()).
def test_view(request):
investment = Investment()
investment.basic_deposit_amount = 100
print(investment.basic_interest) # Prints 0
investment.save()
print(investment.basic_interest) # Prints 365.0