0

我有一个地方模型和评级模型:

class Descriptions(models.Model):
    name=models.CharField(max_length=50)
    website=models.CharField(max_length=50,blank=True)
    street1=models.CharField(max_length=50,blank=True)
    street2=models.CharField(max_length=50,blank=True)
    city=models.CharField(max_length=50,blank=True)
    state=models.CharField(max_length=50,blank=True)
    zip=models.CharField(max_length=5,blank=True)
    description=models.TextField()
    areas_related=models.TextField()
    add_area=models.CharField(max_length=50,blank=True)
    federal=models.NullBooleanField(null=True)
    lat=models.TextField(blank=True)
    long=models.TextField(blank=True)
    creator=models.ForeignKey(User)

    def __unicode__(self):
    return u'%s %s %s %s %s %s %s %s %s %s %s %s %s' %(self.name,self.website,self.street1,
    self.street2,self.city,self.state,self.zip,self.description,self.add_area, self.federal, self.lat, self.long, self.creator)

对于这些地方。然后我有:

class Rating(models.Model):
    user=models.ForeignKey(User)
    rating=models.IntegerField(blank=True)
    place=models.ForeignKey(Descriptions)

    def __unicode__(self):
        return u'%s %s' %(self.rating, self.place)

在我看来,我使用注释来获得平均评分:

 relevant=Descriptions.objects.annotate(Avg('rating__rating'))

现在,我可以添加到这个查询集中,以便我还能够访问哪些用户给出了评分吗?还是我必须创建一个单独的查询集?任何帮助,将不胜感激。

4

1 回答 1

2

好吧,您始终可以访问给出评分的用户。

例子,

for desc in Descriptions.objects.annotate(Avg('rating__rating')):
    for rating in desc.rating_set.all():
           print rating.user
于 2012-11-09T05:42:03.390 回答