내 데이터베이스에 일부 사용자 정보가 들어있는 테이블이 있습니다. 표는 UserBalance
라고하며 필드는 내가 특정 사용자에 대한 credits_in
합계를 시도하고 있지만 서로 다른 경우에 대해 서로 다른 금액을 얻을 user
, credits_in
및 credits_out
및 remark
(다른 사람의 사이에서)Django. 어떻게 Q()가 실제로 작동합니까?
을 포함한다. 이것 봐 :
>>> 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가 사용 i_cointains
제 경우, 두 번째 및 세 번째 경우에 해당 I 용어 스위치드 Q()로하지만를 사용한다.
누군가 2 번째와 3 번째의 차이점을 설명 할 수 있습니까?