Django聚合-尝试返回两个值

时间:2019-06-22 10:24:55

标签: python django django-models aggregation

我正在尝试使用聚合函数来获取其最新帖子的用户名和文字。

我正在尝试下面的代码,但是我没有得到用户名的不同值。

conversations = Chat.objects.values('user__username','body').annotate(Max('dateofpost'))

上面提供了该用户的所有帖子,但是我要获取的是带有该帖子的正文的用户名,该正文是最近发布的帖子。有人可以帮忙吗?

我一直在在线阅读,但是找不到在这种情况下该怎么做的解释。我可以看到有关再次调用aggregate / values方法的帖子,但无法使其正常工作。

1 个答案:

答案 0 :(得分:0)

我可以这样工作:

conversations_qs = Chat.objects.values('user__username').annotate(Max('dateofpost'))
conversation_dates = [conv['dateofpost__max'] for conv in conversations_qs]
conversations = Chat.objects.filter(dateofpost__in=conversation_dates)

有更好的方法吗?