python - 包含需要在 Django 中预先排序的多对多字段的排序对象
问题描述
我有这两个模型:
class Message(models.Model):
content = models.TextField()
timestamp = models.DateTimeField(auto_now_add=True)
class Chat(models.Model):
title = models.CharField(max_length=255)
messages = models.ManyToManyField('Message')
如何按每个聊天中的最后一条发送消息对聊天进行排序?
解决方案
您可以通过相关sChat
的最后一个(最大值)对对象进行排序:timestamp
Message
from django.db.models import Max
Chat.objects.annotate(
last_message=Max('messages__timestamp')
).order_by('-last_message')
推荐阅读
- python - 以元组为键将列表转换为字典
- reactjs - 如何通过选择数据列表来测试更改事件的触发器
- python-3.x - 列出 DigitalOcean Bucket 中的所有对象
- python - 如何使用 libvirt-python 合并/删除快照
- r - R:绕过周期性随机数
- python - 在 authlib 中,authorize_access_token 是否需要显式传递 client_id 和 client_secret?
- arrays - 将两个给定序列组合成一个新的递增序列
- sql - 根据检查两个列表中的 id 的 WHERE 条件从多对多关系表中批量删除
- spring - 使用 WebTestClient.bindToRouterFunction() 进行测试不适用于 kotlin - 无法从最终类继承
- android - 如何让应用程序留在后台而不被杀死?