Python Django查询:按字段分组并获取每个组的最新条目
我在Django-1.11中有下表: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,
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()