在我的数据库中有一个包含一些用户信息的表。该表被调用UserBalance
,字段包括user
,credits_in
和(credits_out
以及remark
其他)
我正在尝试credits_in
为某个用户求和,但对于不同的情况我得到不同的总和。看看这个:
>>> cg = UserBalance.objects.filter(user=ranked_user).filter(remark__icontains='credits g').aggregate(sum_in=Sum('credits_in'))
>>> cg
{'sum_in': 35.85}
>>> cg = UserBalance.objects.filter(user=ranked_user).filter(Q(remark='credits gained') or Q(remark='credits given')).aggregate(sum_in=Sum('credits_in'))
>>> cg
{'sum_in': 26.16}
>>> cg = UserBalance.objects.filter(user=ranked_user).filter(Q(remark='credits given') or Q(remark='credits gained')).aggregate(sum_in=Sum('credits_in'))
>>> cg
{'sum_in': 9.69}
在第一种情况下,我使用i_cointains
,在第二种和第三种情况下,我使用 Q() 但它的术语已切换。
有人能解释一下第 2 种情况和第 3 种情况有什么区别吗?