Django 注释不适用于两个应用程序
Django annotate not working with two apps
我的项目中有两个应用程序。 Models.py 第一个应用的型号:
class repair(models.Model):
site = models.ForeignKey('second.site')
price = models.FloatField()
…
Models.py 第二个应用的型号:
class site(models.Model):
name = models.CharField(max_length = 250)
当我在 shell:
repair.objects.values('site__name').annotate(sum_site=Sum('price'))
我正在获取所有维修模型的物品及其价格:
<QuerySet [{'site__name': 'Site-1', 'count_ss': 1500.0}, {'site__name': 'Site-2', 'count_ss': 1500.0}, {'site__name': 'Site-1', 'count_ss': 800.0}, {'site__name': 'Site-1', 'count_ss': 230.0}, {'site__name': 'Site-2', 'count_ss': 90.0}]>
如何按站点分组?
您应该注释 sites 而不是 repairs.
site.objects.annotate(sum_site=Sum('repair__price'))
neverwalkaloner 在评论中得到回答:
repair.objects.values('site__name').annotate(sum_site=Sum('price')).order_by()
我的项目中有两个应用程序。 Models.py 第一个应用的型号:
class repair(models.Model):
site = models.ForeignKey('second.site')
price = models.FloatField()
…
Models.py 第二个应用的型号:
class site(models.Model):
name = models.CharField(max_length = 250)
当我在 shell:
repair.objects.values('site__name').annotate(sum_site=Sum('price'))
我正在获取所有维修模型的物品及其价格:
<QuerySet [{'site__name': 'Site-1', 'count_ss': 1500.0}, {'site__name': 'Site-2', 'count_ss': 1500.0}, {'site__name': 'Site-1', 'count_ss': 800.0}, {'site__name': 'Site-1', 'count_ss': 230.0}, {'site__name': 'Site-2', 'count_ss': 90.0}]>
如何按站点分组?
您应该注释 sites 而不是 repairs.
site.objects.annotate(sum_site=Sum('repair__price'))
neverwalkaloner 在评论中得到回答:
repair.objects.values('site__name').annotate(sum_site=Sum('price')).order_by()