Python Django模型中多重继承的重组
我一直在使用Django多态性来帮助我处理Django模型中的复杂继承模式 我遇到了一个问题,我需要有一个具体的基础模型(因为它本身需要一个ForeignKey),然后从中继承多个模型,最终一些模型从其中的多个继承。问题是我得到了一个E005错误: app.namedworthdmodel:(models.E005)来自的字段“basemodel_ptr” 父模型“app.namedmodel”与字段“basemodel\u ptr”冲突 来自父模型“app.massmodel” 触发此操作的简单示例如下所示:Python Django模型中多重继承的重组,python,django,inheritance,multiple-inheritance,django-polymorphic,Python,Django,Inheritance,Multiple Inheritance,Django Polymorphic,我一直在使用Django多态性来帮助我处理Django模型中的复杂继承模式 我遇到了一个问题,我需要有一个具体的基础模型(因为它本身需要一个ForeignKey),然后从中继承多个模型,最终一些模型从其中的多个继承。问题是我得到了一个E005错误: app.namedworthdmodel:(models.E005)来自的字段“basemodel_ptr” 父模型“app.namedmodel”与字段“basemodel\u ptr”冲突 来自父模型“app.massmodel” 触发此操作的简
from django.db import models
from polymorphic.models import PolymorphicModel
class BaseModel(PolymorphicModel):
parent = models.ForeignKey('self')
class NamedModel(BaseModel):
name = models.CharField(max_length=32)
class MassModel(BaseModel):
weight = models.FloatField()
class NamedWeightedModel(NamedModel, MassModel):
pass
有没有更好的方法来处理这个问题?还是标准方法
我的真实模型要复杂得多(一个UML规范的实现),我希望能够使用多重继承(理想情况下是通过多态性)使事情变得更简单
我曾考虑过将任何多继承模型都设置为单继承,并将所有其他继承模型映射为onetoonefield,但这否定了多态性的一些优点
如果您能提供任何帮助,我们将不胜感激。您尝试过吗?
NamedModel
和MassModel
是否单独使用?还是和其他车型一样?@SancaKembang我认为第三方的thirdparty
只是泛型的。我的解释是,你可以混入第三方模型。@csinchok两者都可以。你试过了吗?NamedModel
和MassModel
是否单独使用?还是和其他车型一样?@SancaKembang我认为第三方的thirdparty
只是泛型的。我的解释是,你可以加入第三方模型。@csinchok两者都可以。