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

Я хочу сделать запрос для получения всех пользователей, за которыми "следит" другой пользователь для учебного проекта.

Когда я выполняю следующий код python:

user = User.objects.get(id=user_id)
followers = user.follows.all()

Я не получаю ошибку, но вместо этого я получаю список с объектом (называемым Follow object (4)), из которого я не могу получить доступ к свойствам, связанным с пользователем.

Я проверил эту документацию здесь: https://docs.djangoproject.com/en/3.2/topics/db/examples/many_to_many/

Но я не могу найти, где я падаю, чтобы правильно использовать этот тип модели-отношения.

Вот мои модели Django:

class User(AbstractUser):
    pass

class Follow(models.Model):
    user = models.ForeignKey(User, null=False, on_delete=models.CASCADE, related_name="follows")
    follow = models.ManyToManyField(User, blank=True, related_name="followed_by")

Я поискал в моей Django DB, чтобы посмотреть, что происходит, и увидел, что есть реляционная таблица под названием "network_follow_follow", которая на самом деле содержит всю необходимую мне информацию и связана с объектом, который я получаю из моего запроса, вот две картинки о таблице, к которой я могу получить доступ, и о той, к которой я не знаю, как получить доступ: Данные таблицы, запрашиваемые моим кодом Таблица, которую мне нужно запросить

Теперь я ищу способ доступа к последней таблице, но знать, как я могу получить прямой доступ к данным последней таблицы, было бы намного лучше, я думаю.

Заранее спасибо.

Посмотрите, работает ли это для вас.

follow_object = Follow.objects.filter(user=user)
followers_of_user = follow_object.follow.all()

Я думаю, что проблема в том, что объект user не имеет функции user.follows. Вы создали отдельную таблицу в базе данных с данными об этой связи. Я уверен, что есть лучший способ сделать это, но это то, что я сделал с чем-то подобным в моем проекте.

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