2024-04-25 22:40:23 发布
网友
qs = ... qs = qs.annotate(v=Count('a', filter=Q(a__lt=5))) a = qs.first().v b = qs.filter(Q(a__lt=5)).count() assert a == b # error
为什么这些方法会产生不同的结果?你知道吗
从documentation关于Count(expression, **kwargs):
Count(expression, **kwargs)
Returns the number of objects that are related through the provided expression
因此Count是专门用来计算相关对象(通过FK或M2M关系)的,对于行本身的任何其他列都没有太大意义。在这种情况下,它通常返回1(可能取决于您的db返回的值),因为总是有1个值。你知道吗
Count
从documentation关于
Count(expression, **kwargs)
:因此
Count
是专门用来计算相关对象(通过FK或M2M关系)的,对于行本身的任何其他列都没有太大意义。在这种情况下,它通常返回1(可能取决于您的db返回的值),因为总是有1个值。你知道吗相关问题 更多 >
编程相关推荐