过滤掉数据库中的多个外键

时间:2017-08-27 14:43:29

标签: python django messages

这是我的模特

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

如何过滤掉两个用户之间的消息? 我做了类似的事情,它分别给出了消息,我无法在社交网站上看到一个列表中的消息。

data1 = Message.objects.filter(sender_id=id, receiver_id=request.user.id)
data2 = Message.objects.filter(receiver_id=id, sender_id=request.user.id)

请帮我这个代码。提前谢谢!

1 个答案:

答案 0 :(得分:3)

我认为在这种情况下你应该使用Q。像这样:

from django.db.models import Q

data = Message.objects.filter(
    Q(sender_id=id,receiver_id=request.user.id) | Q(sender_id=request.user.id,receiver_id=id)
)