Пользователь вносит значения размера, но вычисления объёма не считаются и не записываются в соответствующие поля базы. Что я делаю не так
# models.py
class myModel(models.Model):
#мера длины
length_units_param = (('mm', 'mm'), ('cm', 'cm'), ('m', 'm'),)
name = models.CharField(max_length=150,
verbose_name='Название', help_text='Введите название',
null=False, blank=False)
length_units = models.CharField(max_length=2, choices=length_units_param, default='mm',
help_text="Единица измерения длины", verbose_name="Единица длины",
null=False, blank=True)
sku_prod_height = models.DecimalField(max_digits=6, decimal_places=2,
help_text="Высота SKU", verbose_name='Высота',
null=True, blank=True)
sku_prod_length = models.DecimalField(max_digits=6, decimal_places=2,
help_text="Длина SKU", verbose_name='Длина',
null=True, blank=True)
sku_prod_depth = models.DecimalField(max_digits=6, decimal_places=2,
help_text="Глубина SKU", verbose_name='Глубина',
null=True, blank=True)
### Объём
def math_sku_pack_vol_m3(self):
a = self.sku_prod_height
b = self.sku_prod_length
c = self.sku_prod_weight
if self.length_units == 'mm':
self.sku_pack_vol_m3 = ((a * 1000) * (b * 1000) * (c * 1000))
print('Объём: ' + self.sku_pack_vol_m3)
return self.sku_pack_vol_m3
elif self.length_units == 'cm':
self.sku_pack_vol_m3 = ((a * 100) * (b * 100) * (c * 100))
print('Объём: ' + self.sku_pack_vol_m3)
return self.sku_pack_vol_m3
else: # self.length_units == 'm':
print('Объём: ' + self.sku_pack_vol_m3)
self.sku_pack_vol_m3 = (a * b * c)
return self.sku_pack_vol_m3
sku_pack_vol_m3 = models.DecimalField(default=math_sku_pack_vol_m3, max_digits=10, decimal_places=2,
verbose_name='Куб. метр, м³', help_text="Куб. метр, м³",
null=True, blank=True)
def math_sku_pack_vol_l(self):
self.sku_pack_vol_l = self.sku_pack_vol_m3 * 1000
print('Объём, Л: ' + self.sku_pack_vol_l)
return self.sku_pack_vol_l
sku_pack_vol_l = models.DecimalField(default=math_sku_pack_vol_l, max_digits=10, decimal_places=2,
verbose_name='Объём, Л', help_text="Объём, Л",
null=True, blank=True)