Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django使用add添加对象所在的ManyToManyField';自我';_Python_Django - Fatal编程技术网

Python Django使用add添加对象所在的ManyToManyField';自我';

Python Django使用add添加对象所在的ManyToManyField';自我';,python,django,Python,Django,当我执行以下代码时,配置文件被添加到用户配置文件中。正如预期的那样,但用户配置文件也被添加到配置文件中。下面(这是不需要的)为什么会发生这种情况,我感觉这与外键是“自我”有关,但我不确定如何修复它…以下是视图: def follow(request, profile_id): user = request.user profile = get_object_or_404(Profile, pk=profile_id) user_profile = get_object_o

当我执行以下代码时,配置文件被添加到用户配置文件中。正如预期的那样,但用户配置文件也被添加到配置文件中。下面(这是不需要的)为什么会发生这种情况,我感觉这与外键是“自我”有关,但我不确定如何修复它…以下是视图:

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)

好吧,我在仔细观察之后终于找到了答案,以防其他人想知道解决方案:在模型中,以下应该是模型。ManyToManyField('self',symmetric=False)你应该将此作为答案发布,然后接受它。