gpt4 book ai didi

python - 如何在 charts.js 的查询集中排除空值

转载 作者:行者123 更新时间:2023-12-05 03:16:53 27 4
gpt4 key购买 nike

我正在尝试获取已登录用户在市场上的侵权次数。登录的用户是组的一部分。我遇到的问题是它仍在计算不属于该组的市场项目的值(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')
)

计数将始终为一(如果 ingrigmentNone,则为零)。

您的代码片段的一个问题是它总是只适用于该用户的第一个 组,并且可以是该用户所属的任何组,因此它不是很一致。如果你想计算 user 所属的所有组,你可以使用:

mar_count = Marketplace.objects.filter(groups__user=request.user).annotate(
infringement_count=Count('infringement')
)

这里的计数将始终是“匹配”组的数量,如果 infrigmentNULL,则为 0

关于python - 如何在 charts.js 的查询集中排除空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74424645/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com