Сосбтвенно - вопрос в заголовке.
Ситуация такая - есть модель сотрудник, есть модель контакт (телефон, скайп и т.п.) надо привязать сотрудника к нескольким контактам. Можно, конечно, сделать в модели контакт внешний ключ на сотрудника, но мне надо чтобы контакты можно было привязывать не только к сотрудникам но и к контрагентам. Так что тогда, получается, надо делать два поля - внешних ключа, один на сотрудников, другой на контрагентов, и сделать их оба необязательными. Но это как-то криво. Какое более правильное решение? Может применить конечно ManyToManyField, но это ведь тоже будет не полная передача сути, потому что один контакт может быть привязан только к одному сотруднику.