Django中的多轨模型如轨道?

时间:2011-03-29 16:31:20

标签: ruby-on-rails django django-models polymorphism

rails中,我可以声明一个模型:polymorphic => true,这足以使模型具有多态性。

但是如何在Django中创建多态模型?

我知道它不像rails那么简单,但我需要在 Django 中进行介绍。

2 个答案:

答案 0 :(得分:4)

类似的问题:Double Foreign Key in Django?

答案是使用django中的ContentTypes框架来实现多态关联。

答案 1 :(得分:2)

有一个名为django-polymorphic-models的简单应用程序,可让您使用基本的向下转换函数创建多态模型。它非常简单,添加了一个存储新创建对象的内容类型的字段。了解内容类型,您可以通过对象获取子模型。* lowecase_model_name *(django通过OneToOneField在内部表示继承)。如果使用django-polymorphic-models,模型上的downcast方法将为您提供子模型。此外,它为查询集添加了一些类似的方法!