Как вычислить среднедневное значение в сериализаторе django
моя модель :
class Record(models.Model):
type = models.CharField(max_length=9, choices=RECORD_CHOICES)
user = models.ForeignKey(User,on_delete=models.CASCADE)
record = models.DecimalField(decimal_places=4,max_digits=8)
date_time = models.DateTimeField()
мой сериализатор:
class RecordSerializer_1(serializers.ModelSerializer):
class Meta:
model = Record
fields = ['type','record','date_time']
Мое мнение :
records = Record.objects.filter(user=user,type="HeartRate")
serializer = RecordSerializer_1(records, many=True)
У меня есть несколько записей за один день, мне нужно вычислить среднее значение и вернуть только одну запись за день
Чтобы получить среднее значение записи, заданной по времени:
from django.db.models import Avg
# Ex records:
records = [2, 3, 4, 7, 9]
day = datetime.datetime.now()
agg = Record.objects.filter(date_time=day).aggregate(record_average=Avg("record"))
# {'record_average': Decimal('5')}
Для получения дополнительной информации об агрегации вы можете заглянуть в документацию Django.