【问题标题】:Filtering Posts greater than certain number of likes过滤超过一定数量的喜欢的帖子
【发布时间】:2021-10-21 08:30:28
【问题描述】:

我有一个关于按大于给定数量的喜欢计数过滤帖子的问题。

我想要在 DJANGO SHELL 上输入 post.likes 大于 10 我想查看所有超过 10 个赞的帖子。

我该怎么做?

谢谢

models.py

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

【问题讨论】:

    标签: django django-models django-queryset


    【解决方案1】:

    您可以使用.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
    )

    【讨论】:

      猜你喜欢
      • 2020-12-12
      • 2023-04-06
      • 2019-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 1970-01-01
      • 2013-05-06
      相关资源
      最近更新 更多