Django:对子子外来对象的计数求和

时间:2012-10-22 14:16:28

标签: django django-models

我有很多Twavail的热门歌曲 我有很多Twavail for Twaffic

我想总结Twaffic的Hits数量,并在Twaffic条目(hits_count)中获取一个附加字段,但我遇到了一些困难。


以下是我的模特:

class Twaffic(models.Model):
    user = models.ForeignKey(User,editable=False)
    enchere = models.PositiveIntegerField(default=1)

class Twavail(models.Model):

    user = models.ForeignKey(User,editable=False)
    twaffic = models.ForeignKey(Twaffic,editable=False,related_name='twavaux')
    tweet_id = models.CharField(max_length=20,default=0, editable=False)

class Hit(models.Model):
    twavail = models.ForeignKey(Twavail,editable=False,related_name='hits')
    date = models.DateTimeField(max_length=140,auto_now=True,default="")

我试过了:

twaffics=Twaffic.objects.annotate(hits_count=Sum('twavaux__hits__count')).filter(user=request.user)

但是我收到以下错误:

无法将关键字'点击'解析为字段。选择是:twaffic,用户

2级之前获取此信息真的不可能吗?点击是正确的相关名称..也许我错过了什么?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

尝试使用此...

hit_count = Hit.objects.filter(twavail__id__in = Twavail.objects.filter(twaffic = twaffic_obj).values_list('id', flat=True)).count()

答案 1 :(得分:1)

我找到了答案:

twaffics=Twaffic.objects.annotate(hits_count=Count('twavaux__hits')).filter(user=request.user)

在我的settings.py中添加了点击应用程序后,它就起作用了,这是重点。