Как вычислить среднедневное значение в сериализаторе 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.

Вернуться на верх