Django ManyToMany 关系 - 检查是否存在?

我目前正在学习 Django 并为此构建一个类似 twitter 的应用程序。


我在 Profile 模型中使用了 ManyToManyField 来反映关注者:


models.py

class Profile(models.Model):

    """

        Extension of User model to save additional information

    """

    user = models.OneToOneField(User, on_delete=models.CASCADE)

    bio = models.TextField(max_length=500, blank=True)

    followers = models.ManyToManyField('self', related_name='Followers', blank=True, symmetrical=False)

    follower_count = models.IntegerField(default=0)

    following_count = models.IntegerField(default=0)

现在我正在尝试检查用户是否已经在关注另一个用户(打开个人资料时,我可以在那里显示正确的关注/取消关注按钮)


views.py

def profile(request, username):

    try:

        user = User.objects.get(username=username)

        user_profile = Profile.objects.get(user_id=user.id)

    except ObjectDoesNotExist:

        raise Http404("User does not exist")

    is_following = True if user.id in Profile.followers.all() else False


    return render(request, 'songapp/profile.html', {'user_profile': user_profile,

                                                    'user'        : user,

                                                    'is_following': is_following})

问题在于


Profile.followers.all()

当我得到以下 AttributeError 时:


'ManyToManyDescriptor' object has no attribute 'all'

我已经使用了搜索功能并阅读了长达 8 岁的结果,但我没有找到或理解相应的答案。


非常感谢任何帮助

http://img4.mukewang.com/62cd4bcf0001e8ca03740888.jpg

慕仙森
浏览 113回答 1
1回答

弑天下

我不得不再次尝试迁移,我真的错过了其中一个。跑manage.py makemigrations,manage.py migrate让我的模型工作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python