我有以下(简化的)模型:
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 items 2009 - Category 1: 5 items - Category 3: 8 items
请您参考如下方法:
