我正在做我的第一个 Django 项目,并且正在与来自 3rd 方程序的遗留数据库搏斗。对于我试图掌握的一个部分,数据库有一个稍微不寻常的表结构。
基本表格布局如下:
PERSON
------
z_pk int primary key,
z_name text
SPOUSEREL
---------
z_person int foreign_key(person.z_pk)
z_spouserel int
例如,PERSON 包含:
1, John Smith
2, Maggie Brown
3, Bob Johnson
4, Sarah Lee
SPOUSEREL 将包含以下内容:
1, 50
2, 50
1, 55
4, 55
这表明约翰史密斯在“50 号婚姻”中与玛吉布朗结婚,而约翰史密斯也在“55 号婚姻”中与莎拉李结婚。数字 50 和 55 是简单地创建从一个人到另一个人的链接以指示婚姻并且没有其他相关性的数字。
我尝试了各种ManyToManyField
and的组合ForeignKey
,例如:
class Spouserel(models.Model):
z_persons = models.ManyToManyField(Person, db_column='z_pk')
z_spouserels = models.ManyToManyField("self")
但没有成功。通过查看它尝试执行的查询,查找失败,Django 需要一个 ID 字段但不存在。我考虑过使用“通过”,但在这种情况下,它必须通过自己?
我不知道该去哪里。