假设我有以下模型结构:
Parent():
Child():
parent = ForeignKey(Parent)
GrandChild():
child = ForeignKey(Child)
state = BooleanField()
num = FloatField()
Run Code Online (Sandbox Code Playgroud)
我正在尝试从 ParentViewSet恢复以下内容:
我可以执行以下操作:
queryset = Parent.objects\
.annotate(child_count=Count('child'))\
.annotate(sum_total=Sum('child__grandchild__num'))
Run Code Online (Sandbox Code Playgroud)
这给了我 (1) 但不是 (2) 它给了我所有孙子的总和。如何在确保所有Parent对象仍在 QuerySet 中的同时适当地过滤孙子?
django django-models django-queryset django-aggregation django-annotate
我有以下型号:
class Building():
class Floor():
building = models.ForeignKey("Building")
class Suite():
floor = models.ForeignKey("Floor")
area = models.FloatField()
available = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)
在建筑物的序列化器中,在整个建筑物中,我想
我很确定我可以对套房列表的面积进行求和,如下所示:
models.Suite.objects.filter(Q(available=True)).aggregate(Sum('area'))
Run Code Online (Sandbox Code Playgroud)
我不知道如何嵌套它以便我可以查询整个建筑物的数据......
django ×2