次のような自己参照型の多対多の関係があります。
class User(models.Model):
groups = models.ManyToManyField('self', blank=True, null=True)
ユーザー 1 とユーザー 2 の間に関係を作成すると、これは双方向です。私はこれを見ることができます:
User_1_obj.groups.all()
User_2_obj.groups.all()
ただし、次を使用してユーザー 3 をリレーションシップに追加すると:
User_1_obj.groups.add(User_3_obj)
ユーザー 1 とユーザー 3 は双方向にリンクされています。しかし、ユーザー 2 とユーザー 3 (および関係にある他のすべてのユーザー) もリンクする必要があります。つまり、すべての順列を相互にリンクする必要があります。
User 1 linked to User 2, User 3, User 4
User 2 linked to User 1, User 3, User 4
User 3 linked to User 1, User 2, User 4
User 4 linked to User 1, User 2, User 3
すべてのリンクを反復処理して不足している接続を追加するよりも簡単な方法はありますか?
ありがとう!すべての助けに感謝します。