gpt4 book ai didi

python - Django 分组查询

转载 作者:太空宇宙 更新时间:2023-11-04 06:39:34 25 4
gpt4 key购买 nike

我有以下(简化的)模型:

class Donation(models.Model):
entry_date = models.DateTimeField()

class Category(models.Model):
name = models.CharField()

class Item(models.Model):
donation = models.ForeignKey(Donation)
category = models.ForeignKey(Category)

我正在尝试显示按捐赠年份分组的每个类别的项目总数。

我已经试过了:

Donation.objects.extra(select={'year': "django_date_trunc('year', 
%s.entry_date)" % Donation._meta.db_table}).values('year',
'item__category__name').annotate(items=Sum('item__quantity'))

但是我在 item__category__name 上遇到了一个字段错误。

我也试过:

Item.objects.extra(select={"year": "django_date_trunc('year', 
entry_date)"}, tables=["donations_donation"]).values("year",
"category__name").annotate(items=Sum("quantity")).order_by()

这通常会得到我想要的东西,但项目数量乘以捐赠记录的数量。

有什么想法吗?基本上我想显示这个:

2010  - Category 1: 10 items  - Category 2: 17 items2009  - Category 1: 5 items  - Category 3: 8 items

最佳答案

这个其他帖子看起来像你正在寻找的内容:

Django equivalent for count and group by

根据您的 Django 版本,您可能会或可能不会使用它。

关于python - Django 分组查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2831238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com