3

我的应用程序中有一个名为“Orders”的模型,它与另一个名为“Clients”的模型有外键关系,该字段称为“client”。

我正在尝试做一个注释查询来总结数据库中的一个字段,以确定哪个客户购买的最多,同时还包括“客户”表中的相关数据。到目前为止,这是我想出的:

top_clients = Order.objects.values('client_id').annotate(total_business=Sum('grand_total')).order_by('-total_business').select_related('client')

在我的模板中,我可以轻松访问“total_business”变量,但由于某种原因我无法访问相关的“客户”数据。这是我在模板中的循环;

 {% for c in top_clients %}
    <li>{{ c.total_business|currency }} {{ c.client.company_name }}</li>
    {% endfor %}

知道为什么我无法访问相关数据吗?还是有更好的方法来做我想做的事情?

4

1 回答 1

4

您正在查询top_clients,因此最好以 w/ 开始Client

top_clients = Client.objects.annotate(total_business=Sum('order__grand_total')).order_by('-total_business')

然后在模板中

{% for c in top_clients %}
<li>{{ c.total_business|currency }} {{ c.company_name }}</li>
{% endfor %}
于 2012-06-09T07:19:28.923 回答