首页 > 解决方案 > 如何在 Django 中获取关注我的用户数量

问题描述

我如何获得关注我的用户数量,而不是我关注的用户数量

这让我关注他们的用户

account = Account.objects.get(pk=user_id)
        view_account = account
        my_account = Account.objects.get(username=request.user)
        if view_account in my_account.following.all():
            follow = True
        else:
            follow = False

        followers = view_account.following.all()
        number_of_followers = len(followers)

我怎么能得到相反的结果,关注我的用户数量

帐户模型

class Account(AbstractBaseUser):
email = models.EmailField(verbose_name="email", max_length=60, unique=True)
username = models.CharField(max_length=30, unique=True)
date_joined = models.DateTimeField(
    verbose_name="date joined", auto_now_add=True
)
following = models.ManyToManyField(
    settings.AUTH_USER_MODEL, blank=True, related_name="follow"
)

标签: djangodjango-modelsdjango-viewsdjango-formsdjango-templates

解决方案


首先,在这里使用不是一个好主意len(…),因为这将获取所有followers,然后仅获取关注者的数量,这是对数据库和 Django/Python 层之间带宽的低效使用。

您可以计算反向关系:

num_followers = view_account.follow.count()

并且view_account可以通过以下方式检索以下用户的数量:

num_following = view_account.following.count()

推荐阅读