Django 实现侧连接

Django 实现侧连接,django,django-models,Django,Django Models,如何在Django模型中实现侧连接? 比如说,我想实现“友谊”机制,也就是说,如果你把我添加到你的朋友列表中,并不意味着你在我的朋友列表中。 我试着用 models.ManyToManyField("self") 但在这种情况下,双方的友谊得以实现。再做一个模型: class Friendship(models.Model): user = models.ForeignKey(User, related_name="friends") friend = models.Forei

如何在Django模型中实现侧连接? 比如说,我想实现“友谊”机制,也就是说,如果你把我添加到你的朋友列表中,并不意味着你在我的朋友列表中。 我试着用

models.ManyToManyField("self")
但在这种情况下,双方的友谊得以实现。

再做一个模型:

class Friendship(models.Model):
    user = models.ForeignKey(User, related_name="friends")
    friend = models.ForeignKey(User, related_name="opposite_friends")
现在您可以这样查询:

someuser.friends.all() # all your friends
someuser.opposite_friends.all() # users that have you as a friend