在Google数据存储区中为ReferenceProperty对象进行级联删除

时间:2016-08-12 10:03:43

标签: google-app-engine google-cloud-datastore

是否存在使用Google App Engine中的数据存储区执行使用ReferenceProperty的级联删除的概念?我理解,GAE中的数据存储区不是关系数据库。但是,请考虑一个简单的模型,用户可以在其中浏览博客帖子。

class Post(db.Model):
    subject = db.StringProperty(required=True)
    content = db.TextProperty(required=True)
    created = db.DateTimeProperty(auto_now_add=True)
    created_by = db.ReferenceProperty(User, required=True,
                                      collection_name='posts')

class Like(db.Model):
    post = db.ReferenceProperty(Post, required=True, collection_name='likes')
    user = db.ReferenceProperty(User, required=True, collection_name='likes')

在删除帖子时,我希望所有人都喜欢"也被删除。

def delete(self, post_key):
        """ Deletes a post from the datastore """
        db.delete(post_key)
        # TODO: Should really delete any corresponding likes
        #       and comments too (else they're be orphaned)

那么,我必须自己编写喜欢的这些删除代码,还是GAE可以自动编写?

感谢任何人提供的任何帮助,以增加我的理解。

0 个答案:

没有答案