我有一個外部數據庫,我無法以任何方式修改(只讀)。它有三個表 - 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和看法? –