【问题标题】:How I can get the number of the user that follow me in Django如何在 Django 中获取关注我的用户数量
【发布时间】:2021-02-24 19:25:23
【问题描述】:

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

这会得到我关注的用户

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"
)

【问题讨论】:

  • 请分享您的Account 模型。
  • 这也会显示view_account关注的人数,这可能是my_account以外的另一个帐户?

标签: django django-models django-views django-forms django-templates


【解决方案1】:

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

你可以计算反向关系:

num_followers = view_account<b>.follow.count()</b>

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

num_following = view_account.following<b>.count()</b>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-24
    • 2017-10-19
    • 1970-01-01
    相关资源
    最近更新 更多