问题描述
我正在尝试根据具体情况对 QuerySet 进行注释,但我得到的所有结果都是正数 (1),而它们应该都是负数 (0)。
过滤器看起来像这样
related_params[distro.id] = table.objects.filter(
ProductId__in=[map["ProductId"] for map in related_maps_by_distro.values("ProductId")]).annotate(
has_agr_param=Count(
models.Case(
models.When(distributionParameterId__Code__in=[agr_parameter.Code for agr_parameter in agr_parameters],then=1),default=0,output_field=models.IntegerField(),)
)
).order_by("distributionParameterId__Name")
除了 annotate
部分外,一切正常。
[agr_parameter.Code for agr_parameter in agr_parameters]
的值为
['ZARIZENI','443','10071','PC4.12','PC4.121','PC4.6','PC3.101','AIO 2.1']
虽然所有可能的 distributionParameterId__Code
都是
['10176','10175','10171','10177','563','10172','10179','829','10174','10173','10170','10178']
所以只有一个匹配项 - 10071
- 因此除了一个之外的所有匹配项都应该用 0 进行注释。
我错过了什么?
任何帮助将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)