DJANGO与Foreignkey聚合

时间:2011-10-31 23:57:47

标签: python django

我正在尝试对外键执行group by子句,但我遇到了一些问题。

代码;

status_applications = DevelopmentAssessment.objects.values('status').annotate(total = Count('status'))

字段状态仅返回状态值的整数,而不是相关对象。有没有办法让它返回相关对象,所以我可以在for循环的相关表中使用字段名称?

干杯, 本

1 个答案:

答案 0 :(得分:0)

你基本上已经有了答案。

status_applications是一个QuerySet,它包含您要求的一组相关对象(状态)。 status_applications[0]将是第一个,[1]秒,依此类推。

要访问每个的计数,只需执行:

for status in status_applications:
    print status, status.total

如果您需要表格的整行,则只需不使用值或将其留空:

applications = DevelopmentAssessment.objects.annotate(total = Count('status'))

applications = DevelopmentAssessment.objects.values().annotate(total = Count('status'))