В Django как я могу отфильтровать объекты в QuerySet на основе отношения многих ко многим? - PullRequest
0 голосов
/ 09 апреля 2020

Таким образом, у меня есть модель профиля пользователя с атрибутом данных, который представляет собой поле «многие ко многим», представляющее профиль, «подружившийся» с другим профилем, подобным Facebook. Вот код для этого:

friends = models.ManyToManyField("self")

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

friends = Profile.objects.filter(friends=self.pk)

Это Кажется, при тестировании выдает пустой QuerySet.

1 Ответ

0 голосов
/ 09 апреля 2020

Решено: для Django наборов запросов вы используете двойное подчеркивание __, чтобы отделить атрибут от других полей, которые вы хотите проверить, поэтому в этом случае мы фильтруем атрибут друзей, где pk - это pk этого профиля.

friends = Profile.objects.filter(friends__pk=self.pk)
return friends
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...