Можно ли использовать свойство symmetrical
из models.ManyToManyField
, чтобы я мог создать транзитивную зависимость между записями?
Например, в моем коде у меня есть:
class User(models.Model):
website = models.ForeignKey('myapp.Website')
related_users = models.ManyToManyField('self', related_name='users', symmetrical=True)
Когда я делаю:
user_a.related_users.add(user_b)
user_a.related_users.all() # returns the user B
user_b.related_users.all() # returns the user A
Здесь все работает как положено, отношения симметричны.
Но когда я делаю:
user_b.related_users.add(user_c)
user_b.related_users.all() # returns user A and user C
user_c.related_users.all() # returns user B
Я хочупользователь C автоматически возвращает пользователя A и пользователя B, поскольку пользователь C является пользователем B, то есть пользователем A, поэтому пользователь C тоже является пользователем A.
Можно ли этого добиться или мне нужно добавить вручнуюсвязь между пользователем A и пользователем C?