python - Django Aggregation - 试图返回两个值
问题描述
我正在尝试使用聚合函数获取他们最近发布的用户名和文本。
我正在尝试下面的代码,但我没有得到用户名的不同值。
conversations = Chat.objects.values('user__username','body').annotate(Max('dateofpost'))
有了上面的内容,它给了我该用户的所有帖子,但我想要得到的是用户名以及最近发布的帖子的正文。任何人都可以帮忙吗?
我一直在网上阅读,但找不到在这种情况下该怎么做的解释。我可以再次看到有关调用聚合/值方法的帖子,但无法使其正常工作。
解决方案
我可以让它这样工作:
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)
有更好的方法吗?
推荐阅读
- constraints - 提高 pyomo 约束的速度嵌套循环
- angular - 使用 Angular 获取 Power Bi 访问令牌
- winsound - Python - winsound 和 SND 不起作用
- ios - Swift 结构返回成员
- ruby-on-rails - .each Ruby on Rails 中的方法,如果表中没有任何内容
- powershell - 将 Active Directory 数据存储在 .txt 文件中
- java - Jenkins 在没有 websphere 部署插件的情况下部署到 webshpere
- vba - 如何以编程方式在 Excel VBA 中的 Workbooks.OpentText 上定义 FieldInfo 参数?
- phpstorm - IntelliJ 插件,用于在视觉上对齐多行数组,同时保持代码仅单行距
- python-3.x - 为什么 check_output 可以在不设置 'shell=True' 的情况下工作