按模型中的方法排序

时间:2011-07-18 14:38:37

标签: python mysql django

我有2个模型CarRating。人们评价汽车(duhh)。我写了一个简单的get_average_score()方法得到Car的平均得分,下面是我的模型。

class Car(models.Model):
  def get_average_score(self):
    return self.rating_set.aggregate(Avg('score'))

class Rating(models.Model):
  car = models.ForeignKey(Car)
  score = models.IntegerField(blank=False, null=False)

基本上我想要的是“顶级汽车”,我在这里订购get_average_score() desc。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

不,但您可以使用注释来执行此操作,例如

Car.objects.annotate(score=Avg('rating__score').order_by('-score')