Python Mongoengine中带反向删除规则的循环依赖
我有以下相互依赖的模型:Python Mongoengine中带反向删除规则的循环依赖,python,mongoengine,circular-dependency,Python,Mongoengine,Circular Dependency,我有以下相互依赖的模型: from mongoengine import * class DocumentA(Document): docB = ReferenceField('DocumentB', reverse_delete_rule=CASCADE) class DocumentB(Document): docA = ReferenceField('DocumentA', reverse_delete_rule=CASCADE) 我得到以下错误: mongoengi
from mongoengine import *
class DocumentA(Document):
docB = ReferenceField('DocumentB', reverse_delete_rule=CASCADE)
class DocumentB(Document):
docA = ReferenceField('DocumentA', reverse_delete_rule=CASCADE)
我得到以下错误:
mongoengine.errors.NotRegistered: `DocumentB` has not been registered in the document registry.
Importing the document class automatically registers it, has it
been imported?
如果删除第一条反向删除规则
,此错误将消失:
from mongoengine import *
class DocumentA(Document):
docB = ReferenceField('DocumentB')
class DocumentB(Document):
docA = ReferenceField('DocumentA', reverse_delete_rule=CASCADE)
很好
有没有办法保持反向删除规则
?来自:
用于注册删除规则的替代语法(在
实现双向删除规则)
因此,您的代码变成:
from mongoengine import *
class DocumentA(Document):
docB = ReferenceField('DocumentB')
class DocumentB(Document):
docA = ReferenceField('DocumentA', reverse_delete_rule=CASCADE)
DocumentB.register_delete_rule(DocumentA, 'docB', CASCADE)
from mongoengine import *
class DocumentA(Document):
docB = ReferenceField('DocumentB')
class DocumentB(Document):
docA = ReferenceField('DocumentA', reverse_delete_rule=CASCADE)
DocumentB.register_delete_rule(DocumentA, 'docB', CASCADE)