У меня есть Модель обзора, подобная той, которая определена ниже (я удалил несколько полей в REVIEW_FIELDS).Я хочу найти среднее для подмножества атрибутов и заполнить ModelForm вычисленной информацией.
REVIEW_FIELDS = ['noise']
class Review(models.Model):
notes = models.TextField(null=True, blank=True)
CHOICES = ((1, u'Quiet'), (2, u'Kinda Quiet'), (3, u'Loud'))
noise = models.models.IntegerField('Noise Level', blank-True, null=True, choices=CHOICES)
class ReviewForm(ModelForm):
class Meta:
model = Review
fields = REVIEW_FIELDS
Я могу легко добавить дополнительные поля в модель, а затем добавить их в список REVIEW_FIELDS.Затем я могу легко перебрать их в javascript и т. Д. На мой взгляд, я хочу вычислить среднее значение для целого ряда целочисленных полей и заполнить ReviewForm значениями атрибутов.Как я могу сделать что-то подобное?
stats = {}
for attr in REVIEW_FIELDS:
val = reviews.aggregate(Avg(attr)).values()[0]
if val:
stats[attr] = int(round(val,0))
r.attr = stats[attr]
r = Review()
f = ReviewForm(r)
Как я могу создать ReviewForm со средними значениями без жесткого кодирования значений атрибутов?Я хотел бы иметь возможность добавить поле, добавить значение в список и автоматически добавить его в вычисляемый набор статистики.
Если я делаю что-то в корне неправильно, пожалуйста, дайте мне знать,Я относительно новичок в django, так что, возможно, я заново изобретаю функциональность, которая уже существует.