python - django 按日归档统计订单求解
问题描述
models.py:订单数据模型
class Order(models.Model): date = models.DateTimeField(default=timezone.now) paid_card = models.PositiveIntegerField(blank=True, null=True) paid_cash = models.PositiveIntegerField(blank=True, null=True) paid_gift = models.PositiveIntegerField(blank=True, null=True)statur = models.CharField() @property # 实收金额(paid_in) = paid_card + paid_cash + paid_gift def paid_in(self):return sum(filter(None, [self.paid_card, self.paid_cash, self.paid_gift]))
views.py: 按日归档统计每天的订单数、订单总额
def wx_archive(request): orders = Order.objects.filter(status=’closed’).annotate(day=TruncDay(’start_time’)).values(’day’).annotate(count=Count(’id’), total=Sum(’paid_in’)).values(’day’, ’count’, ’total’).order_by(’day’) return render(request, ’orders/archive.html’, {’orders’: orders})
运行后报错,提示
FieldError at /orders/archive/Cannot resolve keyword ’paid_in’ into field. Choices are: count, day, id, paid_card, paid_cash, paid_gift, status
请问,我该如何统计每日的总 paid_in?
问题解答
回答1:你的paid_in并不是数据库字段,很明显不能用在SQL语句中。两个方法:
把符合时间段的orders实例取出来,用时间筛选。然后Sum(所有的order.pard_in)
数据库层面Sum所有符合时间段的订单的paid_card, paid_cash, paid_gift
相关文章:
1. javascript - react 中绑定事件和阻止事件冒泡2. css3 - css line-height和font-size高度问题,谁能帮忙解释一下呢3. 一道使用算法解决的java题(关于hashmap的问题)4. java - .jsp页面用<%= %>的方式获取数据存在一个很奇怪的问题5. 老师你好 请求帮助 在选择版本和颜色出错 选择第二个的时候默认选项颜色不恢复原来的颜色6. javascript - requestAnimationFrame如何控制帧速?7. css3 - border-bottom 的长度可否超过盒子的宽度呢?实现如下图效果。(我的书下面的线)8. javascript - git clone 下来的项目 想在本地运行 npm run install 报错9. java - umeng分享中遇到找不到方法10. sping - Spring注入,在XML配置中引用JavaConfig,结果找不到Config中的bean

网公网安备