【问题标题】:return all objects associated with a user返回与用户关联的所有对象
【发布时间】:2015-11-12 11:56:20
【问题描述】:

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

我正在创建这个应用程序来管理/跟踪客户

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

例如user1 分配给 customer1、customer2、customer3

我想从分配给 user1 的所有客户那里获得他们愿意花费的金额

比如这样的

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

然后将价格加在一起,就像这样[&lt;user1: total:$1110&gt;]

这是我做的,但似乎没有用

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

我怎么能做到这一点?

【问题讨论】:

  • User 是用户类的实例吗? (顺便说一句,如果是,那是不好的命名)
  • 不,我认为如果是实例,它会是 request.user?

标签: python django django-queryset django-orm


【解决方案1】:

针对特定用户:

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']

【讨论】:

  • 感谢@dietbacon 感谢您的帮助!
  • @ohhellothere 没问题。如果可行,请接受我的回答。如果它没有让我知道,那么我可以考虑可能是什么问题
  • 如果使用 this_user = User.objects.get(id=3) 它会为用户汇总所有金额,但我希望每个用户都使用它,因此它会在模板中显示类似的内容 codepad.org/jkenMTTG
  • @ohhellothere 我在答案中添加了更多案例,如果您想要所有案例的总和,请尝试第三个案例。如果不起作用,请在此处发布 Lead 的模型,以便我们获得更多信息
  • @ohhellothere 哦,好的,所以你想要每个人的总和?
猜你喜欢
  • 1970-01-01
  • 2014-05-08
  • 2015-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多