Как я могу получить номер пользователя, который следует за мной в Django

#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()