如何在Django中定义模型之间的多态关系?

Min*_*ark 13 django polymorphism associations django-models

我正在开发一个包含Offer模型的Django应用程序.一个Offer实例包含定价条件和指向一个产品定义.产品模型实际上是一个层次结构(我有一个Television模型,一个Camcorder模型等).所以我希望Offer模型包含一个指向任何产品的多态(或"通用")关联.

现在,我发现所有这些都是ContentTypes应用程序中使用泛型关联.这可能会,但我正在寻找替代品,如果有的话.

谢谢你的帮助.

(每个答案一个解决方案请)

iva*_*van 6

ContentTypes 是正确的方法。这是因为 ForignKey 只能指向一种类型的表,因此您需要通过一个中间表并根据不同的类型进行拆分。

因此,类层次结构的模型继承,但外键的 ContentType。


Gui*_*ume -4

您可能想看看模型继承