所以我想要实现的目标如下: 我有两个模型A和B,它们具有OneToOne关系。模型A的实例在其各自的模型B实例之前始终创建。依赖于参数,我希望能够使用不同的初始值初始化模型b的实例。
我所提出的是定义ProtoTypeModel并将其与实际模型一起子类化如下:
from django.db import models
#other imports
class PrototypeB(models.Model):
#define all fields
class B(PrototypeB):
pass
通过使用Django Rest Framework中的dict = PrototypeB.objects.filter(**my criteria).values()[0]
或自定义Serializer,我将得到一个dict,然后我可以用它来实例化我的模型B实例:B.objects.create(**dict)
。
这是正确的方法还是我错过了一个重点?
最佳, d
答案 0 :(得分:0)
如果有人在他的路上遇到同样的问题,我就是这样做的。 首先,我考虑实施上面提到的解决方案。但是,在研究多表继承时,我发现这实际上是一个无法运行的。
多表继承将创建一个隐式OneToOne _ptr字段,该字段将触发级联删除行为,导致删除B实例时删除我的arche类型模型。
我开始实现两个模型PrototypeB和B,它们完美无缺。