在我的數據庫中有一張表,其中包含一些用戶信息。該表被稱爲UserBalance
和領域包括user
,credits_in
和credits_out
和remark
(等等)Django。 Q()如何工作?
我想總結的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(),但其條款切換。
有人可以解釋第二和第三種情況有什麼區別嗎?