У меня есть внешняя база данных, которую я никак не могу изменить (только для чтения). Он состоит из трех таблиц - Company
(id
), CompanyContact
(company_id
, contact_id
), Contact
(id
, company_id
).Django объединение двух таблиц в одну модель
В принципе, Contact
имеет обнуляемого внешний ключ к Company
столу, и она работает, как многие-к-одному, но если company_id является null
, я должен смотреть в CompanyContact
таблицу, которая многие-ко-многим рода отношения.
Как объединить эти две таблицы (Contact
и CompanyContact
) в одну модель - Contact
? Другими словами, как я могу получить все контакты для данной компании?
В SQL, который будет что-то вроде:
select contact.id from contact where company_id = XXX union select contact_id from companycontact where company_id = XXX
модели Django:
class Company(models.Model):
uuid = models.CharField(max_length=36, primary_key=True, db_column='id')
class Meta:
managed = False
class Contact(models.Model):
uuid = models.CharField(max_length=36, primary_key=True, db_column='id')
company = models.ForeignKey(Company, db_column='company_id')
class Meta:
managed = False
у меня нет модели для CompanyContact
. И нет ничего, чтобы показать в представлениях, потому что это в основном мой вопрос, как получить контакты для данной компании.
вы можете прояснится таблица/столбец перепутать ваш вопрос пожалуйста – e4c5
показать нам models.py и вид ?? –