【发布时间】:2017-01-03 09:49:11
【问题描述】:
我有一个无法以任何方式修改的外部数据库(只读)。它有三个表 - Company (id), CompanyContact (company_id, contact_id), Contact (id, company_id)。
基本上,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 的模型。视图中没有可显示的内容,因为这基本上是我的问题,如何获取给定公司的联系人。
【问题讨论】:
-
你能把你的问题中的表格/列弄乱吗
-
向我们展示models.py并查看??
标签: django django-models