Django 怎么查询消费记录,查询出来的记录需求排除重复的用户,包含每个用户的消费次数和消费金额总和

2015-09-09 20:17:11 +08:00
 iwillhappy1314
第一次使用 Django ,有个问题请教各位大神。

Django 里面有一个 model ,记录的是用户的消费记录。

现在要查询用户的消费记录。

查询出来的记录需要排除重复的用户,包含每个用户的消费次数和消费金额总和。

Django 有直接查询这样的数据的方法吗?还是要写 raw SQL 查询?

谢谢各位!
3619 次点击
所在节点    Python
7 条回复
phx13ye
2015-09-10 00:44:59 +08:00
自己遍历统计一下 消费记录.objects.all
zeq
2015-09-10 00:56:00 +08:00
cxbig
2015-09-10 05:11:28 +08:00
Django 只是空框架啊,你开发的应用是啥?
在消费记录的 model 里写一个统计 function 就好啦,
都 oop 框架了,不追求极限效率不需要用 raw sql
adexbn
2015-09-10 06:43:42 +08:00
model 名.object.raw (SQL 语句)
huangyan92
2015-09-10 09:31:47 +08:00
all_user = **.objects.all ().query.group_by = ['u']
for one_user in all_user:
**.objects.filter (u=one_user.u ).aggregate (total_amount=Sum ('order_amount')).get ('total_amount') or 0
这样好像是可以算出来,但是数据多了应该会很慢
winkidney
2015-09-10 10:15:29 +08:00
google :
django orm group by
django orm sum
iwillhappy1314
2015-09-10 13:02:01 +08:00
非常感谢各位的热心回答,问题已解决, model 中使用了外键,而 Django 的模板支持直接使用外键查询关联数据,先查询出来用户,然后通过:{{ customer.record_set.all|length }}查询出来消费次数。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/219457

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX