小编Dav*_*ave的帖子

Django - 私人消息对话视图

我为我的 Django 项目构建了一个非常基本的私人消息模块。

我有一个消息模型,其中包括:

sender (Foreign key to the member model)
recipient (Foreign key to the member model)
message
date (Datetime of which the message was created)
Run Code Online (Sandbox Code Playgroud)

现在我的问题是我想创建一个新视图,该视图返回基于这些消息的对话列表。

我正在尝试编写一个查询,该查询返回最新消息,但在发件人 = 当前用户或收件人 = 当前用户的情况下是唯一的。这样我就有了一个最新消息列表,它应该相当于一个对话列表。我说对了还是我完全想多了?

conversations = Message.objects.filter(Q(recipient=request.user) | 
Q(sender=request.user)).annotate(max=Max('date'))
Run Code Online (Sandbox Code Playgroud)

但这是返回重复的对话我从另一个堆栈溢出帖子中尝试过:

conversations = Message.objects.order_by('recipient', 'sender', 
'date').distinct('recipient', 'sender') 
Run Code Online (Sandbox Code Playgroud)

但我收到此错误“此数据库后端不支持 DISTINCT ON 字段”

任何帮助将不胜感激。

python django

3
推荐指数
1
解决办法
1526
查看次数

标签 统计

django ×1

python ×1