2017-10-19 16 views
0

我对Python的Django的这样的样品波纹管拖车模块(类):正从关系的表值和求和Django上

#first one 
class Names(models.Model): 
    name = models.CharField(max_length=200) 
    type = models.ForeignKey(Types) 
    value = models.IntegerField() 

#second one 
class Type(models.Model): 
    name = models.CharField(max_length=200) 

如你所见,类NamesType类关系,如何使一个公式来获取名称的总数和值的每个类的type的总和来获得结果是这样的,例如:

type1_total_names = 4 
type1_sum_val = 22 

回答

1

下面将聚合类型的数据,并总结认为的值。你会发现在sum_value

from django.db.models import Count 

query = (Names.objects 
       .values('type') 
       .annotate(sum_value=Count('value')) 
+0

@hayder做到了解决这个问题? – Jonathan

0

的总和要query the related objects你可以试试下面的代码:

type_1_obj = Type.objects.get(pk=1) 
type_1_total_names = type_obj.names_set.all().count() 
type_1_sum_val = type_obj.names_set.all().aggregate(sum_val=Sum('value'))['sum_val']