返回与用户

时间:2015-08-19 09:10:19

标签: python django django-queryset django-orm

如何获取与用户相关联的对象

我正在创建此应用以管理/跟踪客户

我有用于保存客户个人信息的表单和另一个他们愿意花费多少的字段+我们可以将客户分配给要处理的用户。

e.g。 user1分配给customer1,customer2,customer3

我希望从分配给user1的所有客户那里获得一笔他们愿意支付的金额

所以像这样的事情

[<user1: <customer1:$10> <customer2:$100> <customer3:$1000>]

然后将价格汇总在一起,就像这样[<user1: total:$1110>]

这是我所做的,但似乎没有效果

annual_spend = Lead.objects.filter(assign_to=User).exclude(lead_status='converted').aggregate(Sum('annual_spend'))

我怎么能这样做呢?

1 个答案:

答案 0 :(得分:0)

对于特定用户:

this_user = User.objects.get(id=ENTER USER ID HERE)
annual_spend['annual_spend__sum'] = Lead.objects.filter(assign_to=this_user).exclude(lead_status='converted').aggregate(Sum('annual_spend'))

或者如果您想要经过身份验证的用户:

annual_spend['annual_spend__sum'] = Lead.objects.filter(assign_to=request.user).exclude(lead_status='converted').aggregate(Sum('annual_spend'))

所有潜在客户实例的总计:

annual_spend['annual_spend__sum'] = Lead.objects.all().exclude(lead_status='converted').aggregate(Sum('annual_spend'))

对于每个用户都有值的表:

all_users = User.objects.all()
values = {}
for this_user in all_users:
    values[this_user.id] = Lead.objects.filter(assign_to=this_user).exclude(lead_status='converted').aggregate(Sum('annual_spend'))['annual_spend__sum']