django - 如何在 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"
)
解决方案
首先,在这里使用不是一个好主意len(…)
,因为这将获取所有followers
,然后仅获取关注者的数量,这是对数据库和 Django/Python 层之间带宽的低效使用。
您可以计算反向关系:
num_followers = view_account.follow.count()
并且view_account
可以通过以下方式检索以下用户的数量:
num_following = view_account.following.count()
推荐阅读
- string - 如果一个 url 包含字符串字符和数字,它会降低谷歌在我们的站点地图中找到我们的 url 的速度吗?
- python-3.x - Python Pandas:月份值在转换后变为天
- python - discord.ext.commands.errors.CommandInvokeError:命令引发异常:KeyError:'Fajr'
- c# - C#:检查 HttpClient.GetStreamAsync(myURL) 是否成功?
- animation - 使用带有最新版本 d3.js 的 csv 文件数据绘制条形图、圆环图和分组条形图
- python-3.x - 尝试加载模型时如何解决以下错误“KeyError: 'CaseFoldUTF8' while loading the model”
- c - P线程创建指针问题
- javascript - 当fabricJs画布宽度和高度在chrome中超过4096px时对象消失
- java - 使用Java对汽车列表进行排序并显示它们排序?
- reactjs - 如何通过单击反应js中的按钮将值增加+1