我有图片上传的模型,看起来是这样的:Django/Python:如何按日期对查询集结果进行分组?
from django.db import models
from django.contrib.auth.models import User
import datetime
class ImageItem(models.Model):
user = models.ForeignKey(User)
upload_date = models.DateTimeField(auto_now_add = True)
last_modified = models.DateTimeField(auto_now = True)
original_img = models.ImageField(upload_to = img_get_file_path)
我要查询属于特定用户的ImageItem的所有实例,并把它们组根据上传日期。例如,对于某些用户,我想要一个2013年4月9日的小组,以及2013年4月12日的另一个小组,等等(假设他们在这些日期上传了一个或多个图像)。
我想我运行一个简单的查询,比如,
joes_images = ImageItem.objects.filter(user__username='joe')
但后来我又怎能组他们一天公布?(假设他没有每天发布,只在某些日子发布)
函数将不得不返回所有图像组。
你看过这个问题吗? http://stackoverflow.com/questions/629551/how-to-query-as-group-by-in-django –
不,我没有,这绝对解决了我的问题的前半部分。这里,'upload_date'字段是一个datetime.datetime对象,这意味着没有两个upload_date值是相同的。我只想按日期分组,而不是按时间分组。我会怎么做? – sgarza62
我认为你必须使用'.extra()',你不能'.order_by()'在一个datetimefield上不幸:( –