【发布时间】:2022-01-17 15:38:44
【问题描述】:
所以我最近对消息进行了过滤,以便在两个人之间传递所有消息
def pmessage(request, pk):
user = User.objects.get(id=pk)
message = pm.objects.filter(Q(receiver=request.user, sender=user) | Q(receiver=user, sender=request.user))
form = dmform()
context = {
'message' : message,
'form' : form,
}
它有效,只是它将消息按类别分组,即,它会先列出满足一个条件的所有消息,而不管哪个消息先出现,这违背了我的目标。
谢谢你
已编辑 下午型号
class pm(models.Model):
sender = models.ForeignKey(User, related_name='sender', on_delete=models.CASCADE)
receiver = models.ForeignKey(User, related_name='receiver', on_delete=models.CASCADE)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True) body = models.TextField()
unread = models.BooleanField(default=False)
def __str__(self):
return f'sender:{self.sender} - receiver:{self.receiver} - {self.body}'
【问题讨论】:
-
你能分享
pm的模型吗? -
我编辑了最初的问题以添加 pm 模型
-
所以您想检索按
created日期排序的消息? (或updated)? -
已创建,但它应该以对话的方式出现,我给你发了一条消息'a',你回复了'b'和'c',然后我发送了'd',所以它应该是 A,B ,C,D 而不是 A,D,B,C 目前的做法
标签: django django-models django-views django-forms django-templates