#django #django-models #django-views #django-forms #django-templates
#django #django-модели #django-просмотры #django-forms #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"
)
Комментарии:
1. Пожалуйста, поделитесь своей
Account
моделью.2. Это также покажет количество
view_account
подписчиков, которое, вероятно, является другой учетной записью, чемmy_account
?
Ответ №1:
Прежде всего, работать здесь не очень хорошая идея len(…)
, поскольку это приведет к выборке всех followers
, а затем только к получению количества подписчиков, это неэффективное использование пропускной способности между базой данных и уровнем Django / Python.
Вы можете посчитать обратное отношение с помощью:
num_followers = view_account.follow.count()
и количество пользователей view_account
, за которыми следует `, может быть получено с помощью:
num_following = view_account.following.count()