作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试获取已登录用户在市场上的侵权次数。登录的用户是组的一部分。我遇到的问题是它仍在计算不属于该组的市场项目的值(value)。它在查询集中添加了 0,打破了我的图表,
u = request.user.groups.all()[0].id
mar_count = Marketplace.objects.annotate(infringement_count=Count('infringement', filter=Q(groups=u)))
结果'Ebay','Amazon','Facebook','Wallmart', '0','0','0','0','1','1','1','1',
我应该得到'Ebay','Amazon','Facebook','Wallmart', '1','1','1','1',
当市场不属于已登录用户组时,我如何排除对市场的计数?我是新的。谢谢
最佳答案
您可以过滤掉 Marketplace
,因此不在 .annotate(..)
clause [Django-doc] 中:
u = request.user.groups.all()[0].id
mar_count = Marketplace.objects.filter(groups=u).annotate(
infringement_count=Count('infringement')
)
计数将始终为一(如果 ingrigment
为 None
,则为零)。
您的代码片段的一个问题是它总是只适用于该用户的第一个 组,并且可以是该用户所属的任何组,因此它不是很一致。如果你想计算 user
所属的所有组,你可以使用:
mar_count = Marketplace.objects.filter(groups__user=request.user).annotate(
infringement_count=Count('infringement')
)
这里的计数将始终是“匹配”组的数量,如果 infrigment
为 NULL
,则为 0
。
关于python - 如何在 charts.js 的查询集中排除空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74424645/
我是一名优秀的程序员,十分优秀!