在rails中,我可以声明一个模型:polymorphic => true
,这足以使模型具有多态性。
但是如何在Django中创建多态模型?
我知道它不像rails那么简单,但我需要在 Django 中进行介绍。
答案 0 :(得分:4)
类似的问题:Double Foreign Key in Django?
答案是使用django中的ContentTypes框架来实现多态关联。
答案 1 :(得分:2)
有一个名为django-polymorphic-models的简单应用程序,可让您使用基本的向下转换函数创建多态模型。它非常简单,添加了一个存储新创建对象的内容类型的字段。了解内容类型,您可以通过对象获取子模型。* lowecase_model_name *(django通过OneToOneField
在内部表示继承)。如果使用django-polymorphic-models,模型上的downcast
方法将为您提供子模型。此外,它为查询集添加了一些类似的方法!