Python 按日期时间划分的Django模型组';日期

Python 按日期时间划分的Django模型组';日期,python,django,django-models,Python,Django,Django Models,假设我有这样一个模型: class Entity(models.Model): start_time = models.DateTimeField() 我想将它们重新组合为列表列表,每个列表列表都包含来自同一日期(同一天,时间应该被忽略)的实体 如何以蟒蛇的方式实现这一点 谢谢创建一个小函数来提取日期: def extract_date(entity): 'extracts the starting date from an entity' return entity.

假设我有这样一个模型:

class Entity(models.Model):
    start_time = models.DateTimeField()
我想将它们重新组合为列表列表,每个列表列表都包含来自同一日期(同一天,时间应该被忽略)的实体

如何以蟒蛇的方式实现这一点


谢谢

创建一个小函数来提取日期:

def extract_date(entity):
    'extracts the starting date from an entity'
    return entity.start_time.date()
然后,您可以将其用于:

或者,如果您确实需要列表列表:

entities = Entity.objects.order_by('start_time')
list_of_lists = [list(g) for t, g in groupby(entities, key=extract_date)]

我同意答案:

Product.objects.extra(select={'day': 'date( date_created )'}).values('day') \
               .annotate(available=Count('date_created'))
但还有一点是: date()的参数不能使用双下划线组合外键字段, 您必须使用表\u name.field\u name

result = Product.objects.extra(select={'day': 'date( product.date_created )'}).values('day') \
           .annotate(available=Count('date_created'))
产品是表的名称


此外,您还可以使用“print result.query”在CMD中查看SQL。

除非我遗漏了一些内容,这些内容将按日期和时间分组,而OP只想按日期分组。你可能对这篇文章感兴趣:@Jordan Reiter:这个问题已经编辑过了。我已经编辑了答案,现在它可以按照OP的要求工作。可能是
result = Product.objects.extra(select={'day': 'date( product.date_created )'}).values('day') \
           .annotate(available=Count('date_created'))