Django: Заполнение атрибутов полей модели из текущих полей

В моей текущей модели элемента я хочу заполнить поля модели с помощью вычислений в init.

class Items(models.Model):
    user = models.ForeignKey(Profile, on_delete=models.CASCADE, null=True, blank=True)
    item_name = models.CharField(max_length=200, null=False, blank=False, default='Enter name')
    item_category = models.ForeignKey(Categories, null=True, blank=True, on_delete=models.SET_NULL)
    item_created_at = models.DateTimeField(auto_now_add=True, null=True, blank=False)
    item_start_date = models.DateField(null=True, blank=False)
    item_end_date = models.DateField(null=True, blank=False)
    item_purchase_price = models.FloatField(null=True, blank=False)
    item_rest_value = models.FloatField(null=True, blank=False)
    item_saving_goal = models.FloatField(default=0, null=True, blank=False)
    item_date_delta = models.FloatField(default=0, null=True, blank=False)
    item_days_passed = models.FloatField(default=0, null=True, blank=False)
    item_currently_saved = models.FloatField(default=0, null=True, blank=False)
    item_percentage_saved = models.FloatField(default=0.01, null=True, blank=False)

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.item_saving_goal = self.item_purchase_price - self.item_rest_value
        self.item_date_delta = self.item_end_date - self.item_start_date
        self.item_days_passed = (date.today() - self.item_start_date).float() ## Make date calc
        self.item_currently_saved = self.item_saving_goal * (self.item_rest_value / self.item_date_delta )
        self.item_percentage_saved = self.item_currently_saved / self.item_saving_goal * 100

Однако в настоящее время я получаю следующую ошибку:

TypeError at /items/ unsupported operand type(s) for -: 'NoneType' and 'NoneType'

C:\Users...\base\models.py, строка 43, in init self.item_saving_goal = self.item_purchase_price - self.item_rest_value

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