Django注释不使用两个应用程序

时间:2017-08-29 12:47:28

标签: django django-queryset django-orm

我的项目中有两个应用程序。第一个应用的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}]>

我如何按网站分组?

2 个答案:

答案 0 :(得分:0)

您应该注释网站,而不是修复

site.objects.annotate(sum_site=Sum('repair__price'))

答案 1 :(得分:0)

neverwalkaloner在评论中得到回答:

int E::factorial(int n)
{
    int fact = 1;
    if(n == 0) return 1;
    for(int i = 1; i <= n; ++i)
    {
        fact = fact * i;
    }

    return fact;
}