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