1

私はそのようなクエリを持っています

em =Employer.objects.filter(id=1).annotate(overall_value = Sum('companyreview__overallRating'))

em[0].overall_value

ご覧のとおり、を持っているすべてのオブジェクトのoverallRatingフィールドの合計が必要です。companyreviewemployerid = 1

Employer上記のクエリは私が望むことを実行しますが、インスタンスから合計を取得する方法があると確信しています。

このクエリを次のように実装するにはどうすればよいですか?

em =Employer.objects.get(id=1)
rate = em.companyreview_set.all().annotate(overall_value = Sum('overallRating'))
rate.overall_value

ありがとう

4

1 に答える 1

2

使用aggregate

e.companyreview_set.aggregate(overall_value = Sum('overall_rating'))

にとって:

class Employer(models.Model): 
     name = models.CharField(max_length=100)

class CompanyReview(models.Model): 
     employer = models.ForeignKey(Employer)
     overall_rating = models.IntegerField()    
于 2011-06-24T08:01:45.847 に答える