Фильтрация сообщений, набравших больше определенного количества лайков
У меня вопрос о фильтрации сообщений по количеству 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
)
начиная с версии django-3.2, мы можем заменить .annotate(…)
на .alias()
[Django-doc]:
from django.db.models import Count
Post.objects.alias(
nlikes=Count('likes')
).filter(
nlikes__gt=10
)