【问题标题】:Sum and Count in nested foreign key relationship?嵌套外键关系中的总和和计数?
【发布时间】:2018-01-26 07:05:06
【问题描述】:

我有以下型号:

class Building():

class Floor():
    building = models.ForeignKey("Building")

class Suite():
    floor = models.ForeignKey("Floor")
    area = models.FloatField()
    available = models.BooleanField()

在Building的序列化器中,跨越整个建筑,我想

  • 统计“可用”套房
  • sum 'available' Suites 'area' 字段

我很确定我可以像这样总结套房列表的面积:

models.Suite.objects.filter(Q(available=True)).aggregate(Sum('area'))

我不知道如何嵌套这个,以便我可以查询整个建筑物的数据...

【问题讨论】:

  • 你是什么意思:“嵌套这个以便你可以查询整个建筑物的数据”,你想在 BuildingSeriaizer 中嵌套 area aggregate 结果?
  • 我可以对单个楼层进行示例查询,但我不知道如何处理建筑物中的每个套房。
  • 你的意思是:每个建筑物的aggregate all available suite area,对吧?
  • 不只是一栋建筑。

标签: django django-models django-rest-framework


【解决方案1】:

我认为你可以做到这些:

计算建筑物中的可用套房数:

Suite.objects.filter(floor__building=building, available=True).count()

总结可用套房的面积:

Suite.objects.filter(floor__building=building, available=True).aggregate(Sum('area'))

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多