【发布时间】:2012-10-23 09:56:02
【问题描述】:
在我的数据库中有一个包含一些用户信息的表。该表名为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(),但它的术语已切换。
谁能解释一下第二种和第三种情况有什么区别?
【问题讨论】:
标签: django django-models django-q