Фильтрация сообщений, набравших больше определенного количества лайков

У меня вопрос о фильтрации сообщений по количеству Like больше заданного числа.

На DJANGO SHELL когда я набираю post.likes больше 10 я хочу видеть все посты с более чем 10 лайками.

Как я могу это сделать?

Спасибо

models.py

class Post(models.Model,HitCountMixin):
  likes = models.ManyToManyField(User, related_name="likes", blank=True)

Вы можете работать с .annotate() [Django-doc] и затем .filter(…) [Django-doc]:

from django.db.models import Count

Post.objects.annotate(
    nlikes=Count('likes')
).filter(
    nlikes__gt=10
)

начиная с версии , мы можем заменить .annotate(…) на .alias() [Django-doc]:

from django.db.models import Count

Post.objects.alias(
    nlikes=Count('likes')
).filter(
    nlikes__gt=10
)
Вернуться на верх