我目前有以下型号
class ChatRoom(models.Model):
creator = models.ForeignKey('User') # points to the initial user
class Message(models.Model):
room = models.ForeignKey('ChatRoom')
text = models.CharField(max_length=500)
date = models.DateTimeField()
from = models.ForeignKey('User') # points to some user
对于登录我的网站的任何给定用户,我想显示他们创建的聊天室列表,按最后一条消息(最新活动)的日期以及输入聊天室的最后一条消息排序
所以像
Your chat rooms
---------------
science - "hey guys, anyone know how to do calculus?" 5m
art - "hey guys, I like art" 10m
我将如何在 django 中执行此查询?请记住,一个人可能有很多很多聊天室,因此我们不能只加载所有的 chat_roomsChatRoom.objects.all()
并手动迭代它。
您需要与您的上一条消息有额外的关系,否则您将无法通过他们订购。
class ChatRoom(models.Model):
creator = models.ForeignKey('User') # points to the initial user
# you will need to set this in view or with signals.(don't forget to handle delete)
last_message = models.ForignKey('Message')
你可以做到这一点
ChatRoom.objects.filter(...).order_by('last_message__date')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)