python - 如何在 Django ORM 中计算带有用户标签名称的标签
问题描述
我有一个像下面这样的帖子模型,我正在使用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}
}
我尝试使用注释、聚合但无法编写确切的查询。
解决方案
Post.objects.filter(tags__name__in=["python"]).count()
推荐阅读
- asp.net - 如何创建包含 JavaScript 互操作的 Blazor 库
- python - 错误:列
是没有时区的时间戳类型,但表达式的类型是字符变化 - reactjs - 在 console.log 上反应的 API 表现不同
- c# - 在 linq 中对具有不同标准的订单线进行排序
- c# - 无法在 DLL“OraOps12.dll”中找到名为“OpsConGetMaxOpenCursorInfo”的入口点
- r - 在一列中按类别和不同日期分组
- powershell - PSCustomObject 页面 - 页面限制设置为 25
- php - 从PHP下载时无法打开文件作为文件损坏
- c# - Excel 单元格始终为空
- c# - Polly 断路器处理和未处理的异常