【问题标题】:Django Aggregation - Trying to return two valuesDjango Aggregation - 试图返回两个值
【发布时间】:2019-11-04 23:11:32
【问题描述】:

我正在尝试使用聚合函数获取他们最近发布的用户名和文本。

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

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

通过上面的内容,它为我提供了该用户的所有帖子,但我想要获得的是用户名以及最新发布的帖子正文。有人可以帮忙吗?

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

【问题讨论】:

    标签: python django django-models aggregation


    【解决方案1】:

    我可以让它这样工作:

    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)
    

    有没有更好的方法?

    【讨论】:

      猜你喜欢
      • 2021-05-23
      • 2020-01-13
      • 2016-07-16
      • 2022-01-17
      • 2021-08-02
      • 1970-01-01
      • 2011-01-01
      • 2014-04-08
      • 1970-01-01
      相关资源
      最近更新 更多