Я прихожу из фона Rails, и у меня есть немного проблем с использованием "методов ассоциации", предоставляемых в Django. У меня есть две модели (которые были упрощены ради краткости), например:
class User(models.Model):
username = models.CharField(max_length=100, unique=True)
companies = models.ManyToManyField('Company', blank=True)
class Company(models.Model):
name = models.CharField(max_length=255)
В соответствии с документацией Django:
"Не имеет значения, какая модель имеет ManyToManyField, но вы должны поместить ее только в одну из моделей - не оба.".
Итак, я понимаю, что если у меня есть экземпляр пользователя, называемого пользователем, я могу сделать:
user.companies
Мой вопрос: как мне сделать обратное? Как получить всех пользователей, принадлежащих экземпляру компании, скажем, Company:
company.users # This doesn't work!
Какое соглашение для этого? Документация, которую я прочитал, на самом деле не охватывает это. Мне нужна ассоциация для работы в обоих направлениях, поэтому я не могу просто перенести ее с одной модели на другую.