0
我有这个简单的模型:如何在本场景中使用MongoEngine级联删除?
from mongoengine import *
from datetime import datetime
class Person(Document):
firstname = StringField(required=True)
@property
def comments(self):
return Comment.objects(author=self).all()
class Comment(Document):
text = StringField(required=True)
timestamp = DateTimeField(required=True, default=datetime.now())
author = ReferenceField('Person', required=True, reverse_delete_rule=CASCADE)
class Program(Document):
title = StringField(required=True)
comments = ListField(ReferenceField('Comment'))
class Episode(Document):
title = StringField(required=True)
comments = ListField(ReferenceField('Comment'))
正如你可以看到,这两个程序和情节可以有意见。起初,我试图嵌入评论,但我似乎碰到了一堵砖墙。所以我尝试将评论作为文档类来代替。我的问题是,我怎么模型,可以这样认为:
- 当一个人被删除,等等都是他们的意见
- 当注释(直接或间接)删除,它从其父删除
- 当一个程序或情节被删除,所以是评论的对象
我使用所有这一切的手动做MongoDB中(和SQLa,对于这个问题),但我是新来的MongoEngine和我挣扎了一下。任何帮助都是极好的!