Граждане эксперты, возник такой вопрос. У меня назрела необходимость создать модель, в которой значения некоторых полей будут вычисляться исходя из значений других полей. Вот как я это реализовал (пример упрощённый, но суть передаёт):
class Zzz(Superclass):
aaa = models.ForeignKey(Aaa)
bbb = models.ForeignKey(Bbb)
ccc = models.ForeignKey(Ccc)
@property
def eee(self):
return self.aaa, self.bbb, self.ccc
@property
def ddd(self):
return reduce((lambda x, y: x + y), [e.some_param for e in self.eee])
Правильно ли я понимаю, что значение ddd будет вычисляться заново при каждом новом обращении? Можно ли переделать код модели так, чтобы значение поля вычислялось однократно при создании записи, а в последствии просто считывалось из БД? Или единственный вариант - представления?