【问题标题】:How to count tags with tag name of a user in Django ORM如何在 Django ORM 中计算带有用户标签名称的标签
【发布时间】:2018-05-28 09:08:17
【问题描述】:

我有一个像下面这样的帖子模型,我正在使用django-taggit

class Post(models.Model):
  user = models.ForeignKey(User)
  post = models.TextField()
  tags = TaggableManager()

>>>p1 = Post(user='user1', post='Some description', tags="python, java, js")
>>>p1.save()
>>>p2 = Post(user='user2', post='Some description', tags="c, java, js")
>>>p2.save()
>>>p3 = Post(user='user1', post='Some description', tags="c, js, python")
>>>p3.save()

现在我想获取每个用户的标签和标签计数,如下所示

{
  'user1': {'python':2, 'java':1, 'js':2, 'c':1}, 
  'user2': {'c':1,'java':1,'js':1}
}

我尝试使用注释、聚合但无法编写确切的查询。

【问题讨论】:

    标签: python django django-orm


    【解决方案1】:
    Post.objects.filter(tags__name__in=["python"]).count()
    

    【讨论】:

    • 这行不通,我应该能够检索用户每个标签的所有标签和相关计数。您的答案将仅返回标签计数,并且不会按所有标签分组。
    猜你喜欢
    • 1970-01-01
    • 2020-10-07
    • 1970-01-01
    • 2011-07-05
    • 2020-08-17
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    • 2023-04-09
    相关资源
    最近更新 更多