我正在尝试一个允许用户跟踪另一个用户的函数。问题是,当我将一个新用户添加到“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/