0

理想的には、複数のフィールドをカウントする注釈を作成したいと考えています。コードは次のとおりです。

#the model
class Referral(models.Model):
     product = models.ForeignKey(Product)
     region = models.ForeignKey(Region)
     owner = models.ForeignKey(User, related_name='owner')
     receiver = models.ForeignKey(User, related_name='receiver')
     company_name = models.CharField(max_length=255)
     note = models.TextField(max_length=5000, blank=True)
     timestamp = models.DateTimeField(auto_now_add=True)


 #I know how to get either owner or recipient, but how to annotate owner + recipient combined?
 users = User.objects.annotate(num_referrals=Count('owner')).order_by('-num_referrals')[:3]

これを行うエレガントな方法はありますか?

4

1 に答える 1

0

これを試して

users = User.objects \
        .extra(select={'total': 'Count(owner)+Count(receiver)'}) \
        .order_by('-total')[:3]
于 2012-12-23T23:32:02.003 に答える