• en
  • Language: ru
  • Documentation version: 2.0

5. Как сделать сортировку по аннотированному (вычисляемому) полю?

У вас есть две модели, Category и Hero.

class Category(models.Model):
    name = models.CharField(max_length=100)


class Hero(models.Model):
    # ...
    name = models.CharField(max_length=100)
    category = models.ForeignKey(Category, on_delete=models.CASCADE)

Вы хотите получить Category, упорядоченные по количеству Hero в них. Вы можете сделать это.

Category.objects.annotate(
    hero_count=Count("hero")
).order_by(
    "-hero_count"
)