如何删除NDB模型中包含某些属性的实体

问题描述 投票:0回答:1

我已经设置好了:

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
python app-engine-ndb
1个回答
0
投票

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

def test():
    img=ImageInfo.query(ImageInfo.level==2).fetch()
    if img:
        img[0].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]


© www.soinside.com 2019 - 2024. All rights reserved.