首页 > 解决方案 > 如何从 django 中的数据库查询中获取不同的记录?

问题描述

我在消息表中有以下记录:

桌子

我想获取发送者为 15的所有接收者以及接收者为 15 的所有发送者

我使用了这个查询:

return Messages.objects.filter(Q(sender=15) | Q(receiver=15)).distinct()

但它也返回重复的结果,如下所示:

输出

我怎样才能只获得不同/唯一的记录。例如 {sender: 15, receiver: 11} 不应该重复

标签: djangodatabase

解决方案


您可以使用:

Messages.objects.filter(sender=15).values_list('receiver', flat=True).union(
    Messages.objects.filter(receiver=15).values_list('sender', flat=True)
)

推荐阅读