【问题标题】:query to loop over records by date in django查询在django中按日期循环记录
【发布时间】:2022-12-15 12:10:24
【问题描述】:

我正在尝试找到一种更好的方法来循环处理接下来 7 天(包括今天)的订单,我已经拥有:

unfilled_orders_0 = Model.objects.filter(delivery_on__date=timezone.now() + timezone.timedelta(0))
context['todays_orders'] = unfilld_orders_0.aggregate(field_1_sum=Sum('field_1'), field_2_sum=Sum('field_2'),field_3_sum=Sum('field_3'), field_4_sum=Sum('field_4'),field_5_sum=Sum('field_5'))

我想知道我是否可以以某种方式避免必须这样做七次——每天一次。我认为有一种更有效的方法可以做到这一点。

【问题讨论】:

    标签: django django-views django-templates


    【解决方案1】:

    您可以使用 for 循环处理它并将数据存储在上下文中,就像这样

    from django.utils import timezone
    from django.db.models import Sum
    context = {}
    for i in range(7):
        qs = Model.objects.filter(delivery_on__date=(timezone.now() + timezone.timedelta(i)).date())
        context = {}
        context[f'orders_{i}'] = qs.aggregate(
            field_1_sum=Sum('field_1'),
            field_2_sum=Sum('field_2'),
            field_3_sum=Sum('field_3'),
            field_4_sum=Sum('field_4'),
            field_5_sum=Sum('field_5'))
    

    【讨论】:

      猜你喜欢
      • 2011-01-17
      • 2013-08-16
      • 2016-07-10
      • 1970-01-01
      • 2021-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      相关资源
      最近更新 更多