【发布时间】:2021-06-15 11:41:52
【问题描述】:
我的客户和订单模型如下:
class Customer(models.Model):
name = models.CharField(max_length = 100)
city = models.CharField(max_length = 100)
class Order(models.Model):
value = models.FloatField()
customer = models.ForeignKey(Customer, on_delete=models.CASCADE)
现在我想生成一个(不同的)客户表,以及他们每个人下的订单数量以及这些订单的价值总和。我在views.py中试过这个:
def customers(request):
customer_orders = Order.objects.distinct().annotate(Sum('value'))
然后在我的 html 模板中,我尝试了以下操作:
<ul>
{% for customer in customer_orders %}
<li>{{customer.customer}} - {{customer.value__sum}}<li>
{% endfor %}
</ul>
毕竟,我没有获得唯一客户(以及相应的订单记录),而是获得了所有订单的列表,并且客户正在重复(如下所示)。不知道我在这里缺少什么。
博斯科沃德 - 16,700.0 Ernser PLC - 51,200.0 墨菲有限公司 - 21,400.0 科勒-维姆 - 29,200.0 施密特-莱格罗斯 - 96,800.0 布朗-魏斯纳特 - 8,200.0 博斯科沃德 - 36,400.0 Ernser PLC - 66,600.0 墨菲有限公司 - 84,200.0
还想知道是否有可能生成一个城市名称表,其中包含从该城市收到的订单数量和订单总值(请注意,我的订单模型没有城市字段)。
【问题讨论】:
标签: python sql django for-loop