【问题标题】:Get sum of nested JSON获取嵌套 JSON 的总和
【发布时间】:2022-10-24 03:08:31
【问题描述】:

我有这个 JSON 数据,其中“日志”被称为另一个序列化程序。

{
    "id": 1,
    "logs": [
        {
            "work_hours": 7,
            "user": "admin"
        },
        {
            "work_hours": 8,
            "user": "admin"
        },
        {
            "work_hours": 6,
            "user": "admin"
        },
        {
            "work_hours": 4,
            "user": "admin"
        },
        {
            "work_hours": 5,
            "user": "admin"
        }
    ]
}

是否可以从日志中获取总工作时间?尝试了注释(总和),但我只能得到 logs.id 的总和作为默认值

这是我的serializer.py

class UserLogsSerializer(serializers.ModelSerializer):

    user = serializers.StringRelatedField()
    class Meta:
        model=UserLogs
        fields=['work_hours','user']

class UserSerializer(serializers.ModelSerializer):
    logs = UserLogsSerializer(read_only=True,many=True)

    class Meta:
        model=User
        fields='__all__'

【问题讨论】:

  • 你能展示一下 UserLogs 模型吗

标签: python django django-rest-framework


【解决方案1】:

我会打赌,说你想要类似的东西

 User.objects.aggregate(Sum('logs__work_hours'))

或者

User.objects.aggregate(hours_worked=Sum('logs__work_hours'))

然后它将在查询集中的所有对象上都可以访问,就好像它是一个声明的属性或字段一样。

【讨论】:

  • 没问题,很高兴为您提供帮助:)
猜你喜欢
  • 2021-02-05
  • 1970-01-01
  • 2021-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-21
相关资源
最近更新 更多