如何删除NDB模型中包含特定属性的实体?

时间:2019-11-10 19:15:49

标签: python app-engine-ndb

我已经设置好了

class ImageInfo(ndb.Model):
    location=ndb.IntegerProperty(required=True)
    level=ndb.IntegerProperty(required=True)
    image_url= ndb.StringProperty(required=False)
    url= ndb.StringProperty(required=False)
    description=ndb.StringProperty(required=False)
    scalewidth= ndb.IntegerProperty(required=False)
    scaleheight= ndb.IntegerProperty(required=False)
    pointer=ndb.BooleanProperty(required=False,default=False)
    pointerlocation=ndb.IntegerProperty(required=False)
    pointerlist=ndb.IntegerProperty(required=False,repeated=True)

ANCESTORY_KEY = ndb.Key("ImageInfo","ImageInfo_root")

,我想删除包含该属性的所有内容:level == 2。 我搜索了google文档,但它要求输入密钥,我不知道它们是什么。 我假设在这里,我做类似的事情:

def test():
    ImageInfo.level==2.delete()
#syntax error

1 个答案:

答案 0 :(得分:0)

哦,为什么我总是在发布问题后5秒钟找到答案

def test():
    img=ImageInfo.query(ImageInfo.level==2).fetch()
    for i in img:
        i.key.delete()
#this will clear every entity with the property: level==2
#if you get a out of bound error, then it is probably because you forgot the img[0]