我有一个基于直通类的简单多对多关系。
class Person(models.Model):
friends = models.ManyToManyField('self', through='Friendship')
class Friendship(models.Model):
me = models.ForeignKey(Person)
them = models.ForeignKey(Person)
confirmed = models.BooleanField(default=False)
简而言之,这应该允许某人将其他人添加为朋友,但在其他人确认之前该链接不存在。很简单。
我想添加一个is_friend(self, user)
方法到Person
. 在那我想做类似的事情:
is_friend(self, user):
return self.friends.filter(them=user, confirmed=True).count()
但filter
似乎只对远程类进行操作(在这种情况下Person
)。有什么方法可以在我Friendship
仍然使用的同时进行过滤ManyRelatedManager
吗?