Форум сайта python.su
0
Скажем, есть в модели 3 поля, которые отвечают за цены на 3 детали. А общая цена - это сумма всех трех цен.
Как лучше организовать модель?
Создать еще одно поле и ловить сигнал, по типу:
def order_pre_save(instance, **kwags):
instance.price = instance.price1 + instance.price2 + instance.price3
models.signals.pre_save.connect(order_pre_save, sender=Order)
def total_price(self):
return self.price1 + self.price2 + self.price3
Офлайн
-1
все зависит от того где это нужно, если у парочки объектов вывести просто сумму то пойдет и метод.
Чтобы держать это в базе нужен какой то аргумент типа нужна выборка с сортировкой по этому полю, или что либо подобное где оно облегчит вычисление.
Офлайн
1
Когда-то делал очки рейтинга для объектов. Сначала делал методом, но потом переделывал сигналом - методом было довольно неудобно пользоваться, да и сортировка с выборкой максимального/минимального значения оказалась чаще, чем я думал.
Офлайн