当我执行以下代码时,配置文件按预期添加到user_profile.follow,但user_profile也被添加到配置文件中.follow(这是不需要的)为什么会发生这种情况,我有一种感觉它与外键是"自我"有关,但我不确定如何解决它......以下是视图:
def follow(request, profile_id):
user = request.user
profile = get_object_or_404(Profile, pk=profile_id)
user_profile = get_object_or_404(Profile, pk=user.id)
user_profile.following.add(profile)
return HttpResponseRedirect(reverse('twitter:profile', args=(profile.id,)))
和模型:
class Profile(models.Model):
user = models.ForeignKey(User)
bio = models.TextField()
image = models.ImageField(upload_to='images/%Y/%m/%d/')
following = models.ManyToManyField('self')
好吧,经过更多的窥探,我终于找到了答案,以防其他人想知道解决方案:在模型中,以下内容应该是
following = models.ManyToManyField('self', symmetrical=False)