Django - эффективный метод проверки, следует ли один пользователь за другим (отношения "многие-ко-многим")

В принципе, я реализую довольно простую функцию, в которой один пользователь может перейти на страницу профиля другого пользователя и следовать/отслеживать его.

Для управления логикой пользовательского интерфейса я хотел бы знать, следует ли один пользователь за другим (или нет).

Я реализовал метод в django, который работает, но я думаю, что он довольно неприятный. Есть предложения, как этот запрос можно упростить с помощью ORM-запросов Django?

Спасибо за ваши предложения!

class User(AbstractUser):
    follows = models.ManyToManyField("self", blank = True, null = True, symmetrical=False, related_name="followers")
    pass

    def serialize(self):
        return{
        "followsCount" : self.follows.all().count(),
        "followersCount": self.followers.all().count()
        }
    
    def checkFollows(self, followCandidate ):
        # basically it checks if user of the application follows a candidate which profile is he viewing by iterating through a collection of users that he follows.
        for item in q:
            if item == followCandidate:
                return True
        return False

Вернуться на верх