Я пытаюсь собрать список целых чисел из модели. Поле, из которого получены целые числа, является полем декоратора @property
. Декоратор работает как положено и в пределах template.html
, если передается напрямую, отображается без проблем. Однако, если я пытаюсь пропустить поле @property
через .aggregate()
контекст, переданный в template
, выдает ошибку, которая в основном говорит Cannot resolve keyword 'sum_thing' into field.
, сопровождаемую списком полей модели, которые не включают ни одно из полей декоратора ,
Мой вопрос: как вы агрегируете (суммируете) производные поля из модели?
#models.py
class Foo(models.Model):
a = 10 # a & b are both
b = 5 # models.IntegerField() items
@property
def sum_thing(self):
return self.a - self.b
#views.py
class Bar(generic.ListView):
def get_context_data(self, **kwargs):
qs = Foo.object.all()
totals = {}
totals['sumthing'] = qs.aggregate(total=Sum('sum_thing')
context = {
'totals': totals
}
return context
** Я значительно упростил models.py
и views.py
.