Сортировать по методу в модели - PullRequest
1 голос
/ 18 июля 2011

У меня есть 2 модели Car и Rating. Люди оценивают автомобили (дух). Я написал простой 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)

В основном я хочу "Top Cars", где я заказываю get_average_score() desc.

Как бы я это сделал?

1 Ответ

1 голос
/ 18 июля 2011

Нет, но вы можете сделать это, используя аннотацию, например

Car.objects.annotate(score=Avg('rating__score').order_by('-score')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...