Python Django查询:按字段分组并获取每个组的最新条目

Python Django查询:按字段分组并获取每个组的最新条目,python,django,django-queryset,Python,Django,Django Queryset,我在Django-1.11中有下表: class Market(models.Model): slug = models.SlugField(...) active = models.DateTimeField(...) 如果slug是外键以避免重复值,那就太好了,但事实并非如此,我正在处理第三方应用程序 data = [ {'id': 1, 'slug': 'test-1', 'active': 'datetime.datetime(2017, 9, 18, 10,

我在Django-1.11中有下表:

class Market(models.Model):
    slug = models.SlugField(...)
    active = models.DateTimeField(...)
如果
slug
是外键以避免重复值,那就太好了,但事实并非如此,我正在处理第三方应用程序

data = [
    {'id': 1, 'slug': 'test-1', 'active': 'datetime.datetime(2017, 9, 18, 10, 43, 8, 581046, tzinfo=<UTC>)'}, 
    {'id': 2, 'slug': 'test-1', 'active': 'datetime.datetime(2017, 9, 20, 10, 43, 8, 581046, tzinfo=<UTC>)'}, 
    {'id': 3, 'slug': 'test-2', 'active': 'datetime.datetime(2017, 9, 10, 10, 43, 8, 581046, tzinfo=<UTC>)'},
    {'id': 4, 'slug': 'test-2', 'active': 'datetime.datetime(2017, 9, 19, 10, 43, 8, 581046, tzinfo=<UTC>)'},
]

这一结果似乎没有出现。我做错了什么?是否是
SlugField
不允许“分组”

看起来您需要添加空的
order\u by()
by,在结果查询中,可以向group by添加额外的字段

试试看:

Market.objects.values('slug').annotate(Max('active')).order_by()
Market.objects.values('slug').annotate(Max('active')).order_by()