スルー クラスに基づく単純な多対多の関係があります。
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
か?