Django : "TypeError: неподдерживаемый тип(ы) операнда для +: 'FloatField' и 'FloatField'"
Я пытаюсь добавить 2 переменные models.FloatField в Django перед сохранением модели, и получаю ошибку.
from django.db import models
class MyModel(models.Model):
def __init__(self):
self.value1 = models.FloatField(default=10.0)
self.value2 = models.FloatField(default=20.0)
def add_values(self):
return self.value1 = self.value1 + self.value2
Когда я создаю объект MyModel и вызываю функцию add_values, я получаю следующую ошибку
my_model = MyModel()
my_model.add_values()
**Error Stack**
line 8, in add_values
self.value1 = self.value1 + self.value2
TypeError: unsupported operand type(s) for +: 'FloatField' and 'FloatField'```
Вы конструируете поля не в конструкторе, а на уровне модели, поэтому:
from django.db import models
class MyModel(models.Model):
value1 = models.FloatField(default=10.0)
value2 = models.FloatField(default=20.0)
def add_values(self):
return self.value1 = self.value1 + self.value2
Возможно, также лучше превратить add_values
в свойство:
from django.db import models
class MyModel(models.Model):
value1 = models.FloatField(default=10.0)
value2 = models.FloatField(default=20.0)
@property
def sum_values(self):
return self.value1 = self.value1 + self.value2