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'))