我为Django中的注册用户构建了一个私人消息传递系统,但有一个小问题。我想不出一种按用户对消息进行分组的方法。
下图显示了两个用户之间的消息。这是用户 karolann 看到的对话。您会看到它不能正确地对消息进行分组。句子“ Hello Susan” 和“这两个模块都颇具挑战性” 应该放在最后一句话之后-“在网上给我发短信。” 。
现在,邮件由发件人分组。如果我按接收者分组,它仍然无法正常工作。它将需要双方都通用的东西,例如对话ID或其他东西。
所以我的问题是:如何创建对话?我希望两个用户之间的所有消息都在同一个地方。
答案 0 :(得分:0)
您应该从两个用户的角度对发送方和接收方同时应用多个过滤器,然后将它们加入。 在这种情况下,无法使用dictsort和regroup。
要获取用户/ other_user对话中的所有消息,您需要:
Message.objects.filter(sender=user.profile, reciever=other_user.profile)|Message.objects.filter(receiver=user.profile, sender=other_user.profile)
(注意|运算符可用于联合)
您应为视图中的每个会话创建这些查询,并在模板上下文中传递这些查询的列表。
答案 1 :(得分:0)
对于在Django中尝试执行此操作的人,我建议使用此解决方案-https://stackoverflow.com/a/43697388/10036828。
这是我可以使其运作的唯一方法。