Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django模型中多重继承的重组_Python_Django_Inheritance_Multiple Inheritance_Django Polymorphic - Fatal编程技术网

Python Django模型中多重继承的重组

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” 触发此操作的简

我一直在使用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两者都可以。