Django ORM:将聚合查询集链接成一个
我可以将这两个查询集链接成一个吗?
qs1 = OrderTicket.objects.filter(date__gt=datetime.date(2009, 1, 1), date__lt=datetime.date(2009, 1, 30)).values('order_type').annotate(value_1 = Sum('gbp_value')).order_by('order_type'),
qs2 = OrderTicket.objects.filter(date__gt=datetime.date(2009, 2, 1), date__lt=datetime.date(2009, 2, 30)).values('order_type').annotate(value_2 = Sum('gbp_value')).order_by('order_type'),
我想要的只是 value_1 和 value_2 列。 Q 对象不是我需要的。也许 ORM 不支持这一点。
Can I chain these two querysets into one?
qs1 = OrderTicket.objects.filter(date__gt=datetime.date(2009, 1, 1), date__lt=datetime.date(2009, 1, 30)).values('order_type').annotate(value_1 = Sum('gbp_value')).order_by('order_type'),
qs2 = OrderTicket.objects.filter(date__gt=datetime.date(2009, 2, 1), date__lt=datetime.date(2009, 2, 30)).values('order_type').annotate(value_2 = Sum('gbp_value')).order_by('order_type'),
All I want is the value_1 and value_2 columns. Q objects are not what I need. Maybe the ORM does not support this.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 | 组合查询集和&运算符:
来源 http://www.djangoproject.com/documentation/models/basic/
You can combine querysets using the | and & operators:
Source http://www.djangoproject.com/documentation/models/basic/
我建议使用 Q 对象< /a> 替换 date__gt 和 date__lt 的过滤器
示例(未测试):
这应该返回您要查找的两个日期。
I would suggest using Q objects to replace your filter for date__gt and date__lt
Example (not tested):
This should return both the dates you are looking for.