在Django中,如何基于多对多关系过滤QuerySet中的对象?

时间:2020-04-08 23:58:16

标签: python django

因此,我有一个具有数据属性的用户个人资料模型,该属性是一个多对多字段,代表一个个人资料“与另一个人”在Facebook上“相交”。这是该代码:

friends = models.ManyToManyField("self")

我可以做什么样的查询来编写一种方法,以获取与当前配置文件成为好友的所有配置文件?

friends = Profile.objects.filter(friends=self.pk)

当我测试它时,这似乎给出了一个空的QuerySet。

1 个答案:

答案 0 :(得分:0)

解决了: 对于Django查询集,您可以使用双下划线__将属性与您要检查的其他字段分开,因此在这种情况下,我们将过滤friends属性,其中pk是此配置文件的pk。

friends = Profile.objects.filter(friends__pk=self.pk)
return friends