我正在尝试一个允许用户跟踪另一个用户的函数。问题是,当我将一个新用户添加到“following”时,跟随另一个用户的用户也会添加到跟随用户的以下列表中。例如,如果用户a跟随用户b,我将拥有:
视图.py

def follow_test(request):
    name = request.POST.get('name', '')
    user_followed = Dater.objects.get(username=name)
    current_user = Dater.objects.get(id=request.user.id)
    print "Current", current_user.followings.all() # display []
    print "Followed", user_followed.followings.all() # display []
    current_user.followings.add(user_followed)
    print "Current", current_user.followings.all() # display <Dater: b>
    print "Followed", user_followed.followings.all() # display <Dater: a>

型号.py:
followings = models.ManyToManyField('self', blank=True)

我希望用户b只添加到

最佳答案

默认情况下,self上的多对多关系是对称的。如果不需要,请将symmetrical设置为false:

followings = models.ManyToManyField('self', blank=True, symmetrical=False)

the docs

关于python - 多对多字段django双向添加关系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41540042/

10-11 02:44