我有一个 Django 项目,它有一个“地址”模型。这用于多个地方 - “用户档案”模型,“医院”模型,“机构”模型等。
我正在使用 Django 的通用关系来允许这些对象中的每一个创建地址的外键。
然而,这似乎在 Django Admin 中引起了一些奇怪(或者我可能没有正确理解它是如何使用的)。在 Django Admin 中,如果我尝试创建地址,我会看到“内容类型”和“对象 ID”的字段。如果未填写,模型将不会验证/保存。不知道该放什么。
问题是,我希望能够创建独立的 Address 对象。然后,当我创建用户配置文件或医院时,我可以将它们链接到地址对象,包括多个链接到同一个地址对象的可能性。
我应该如何使用具有通用关系的 Django 管理员?
另外,我还打算使用 django-reversion 对模型进行版本控制,不确定这是否会导致通用关系和管理员出现任何问题?
干杯,维克多
编辑:我应该补充一下,这是我之前发布的地址和内联问题:
根据那里给出的答案,这就是为什么 Address 模型是具有外键的模型。由于普通的 FK 字段只能指向一种类型的对象,这就是我们使用泛型关系的原因。
每个用户/部门/医院等可能(并且在大多数情况下)有多个地址。
同一个地址可以被多个实体使用,但这种情况比较少见,而且在这里重复也可以,我猜,对吧?
所以这将是从用户/部门/医院到地址的一对多。
在那个原始问题中,他们还建议使用抽象类,并为每个需要地址的实体使用不同的地址模型。我仍然不确定这是否是更好的方法,或者是否有办法让 GenericRelations 与我在这里尝试做的事情一起工作。