仅在对话发生时过滤用户

Filtering the Users only if conversation occurred

这是我的模型

class Message(models.Model):
sender = models.ForeignKey(User, related_name="sender")
receiver = models.ForeignKey(User, related_name="receiver")
msg_content = models.TextField()

只有当当前用户向他们发送消息或他们向当前用户发送消息时,我如何才能过滤掉用户,正如我们在社交网络上看到的那样?

我试过这样的东西

users = Message.objects.filter(Q(sender=request.user) | Q(receiver=request.user))

但它不起作用。它过滤用户的次数与对话发生的次数相同。

当我使用

Message.objects.filter(Q(sender=user) | Q(receiver=user)).distinct('sender')

引发错误 "DISTINCT ON fields is not supported by this database backend" (sqlite3)

请帮我看看这段代码。提前致谢!

用户是这样的:
users = User.objects.filter(sender__receiver__pk= request.user.id)

users = User.objects.filter(sender__receiver= request.user)
它returns所有向当前用户发送消息的用户!