在Django中按日期范围对对象进行分组

时间:2018-07-17 09:23:43

标签: python django python-3.x django-queryset

models.py中,我们有:

class Company(models.Model):
    name = models.CharField(max_length = 60)
    def __str__(self):
        return self.name

class Contract(models.Model):
    name = models.ForeignKey(Company, on_delete=models.CASCADE)
    date_start = modelsDateField(default=datetime.date.today)
    date_end = modelsDateField(default=datetime.date.today)
    price = models.DecimalField(max_digit=20, decimal_places=0)

    def __str__(self):
        return self.id

在模板中,我想查看合同总价的月度表。因此,对于合同查询集,例如:

<QuerySet[
  {'company__name': 'Nike', 'date_start': datetime.date(2010, 10, 1), 'date_end': datetime.date(2015, 7, 15), 'price': Decimal('100')},
  {'company__name': 'Reebok', 'date_start': datetime.date(2008, 5, 1), 'date_end': datetime.date(2015, 2, 23), 'price': Decimal('100')}
]

在选定的2015年的模板中,数据如下:

jan  feb  mar  apr  may  jun  jul  aug  sep  oct  nov  dec
200  200  100  100  100  100  100   0    0    0    0    0

因为耐克的合同在2015年所有月份均有效,而锐步的合同仅在7月之前有效。有人可以帮我提供此任务的视图和模板吗?

0 个答案:

没有答案