как получить взаимные отношения между пользователями в поле Django ManyToMany

Извините, я пишу этот вопрос с мобильного телефона, поэтому не могу предоставить реальный код, но

У меня есть модель отношений с подпиской «многие ко многим» с подписчиками по родственным именам.

Я хочу написать функцию менеджера модели, которая возвращает все взаимные отношения, то есть людей, за которыми я слежу, которые являются моими подписчиками.


person Lewis Wedmore    schedule 01.11.2017    source источник


Ответы (1)


Скажем, у вас есть такая модель:

class Profile(models.Model):
    following = models.ManyToManyField('Profile', related_name='followed_by')

Данный Profile объект p будет иметь доступ ко всем своим подписчикам через p.following.all(). Он получит доступ ко всем профилям, которые следуют за ним через p.followed_by.all().

Имея это в виду, вы можете получить доступ ко всем профилям, на которые p подписаны, которые подписаны на p с помощью:

p.following.filter( id__in = p.followed_by.all() )
person souldeux    schedule 01.11.2017
comment
Большое спасибо _in просто полностью вылетело из головы еще раз спасибо - person Lewis Wedmore; 01.11.2017