我有一个外部数据库,我无法以任何方式修改(只读)。它有三个表 - 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和看法? –