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 に答える