Как удалить объекты, содержащие определенное свойство в модели NDB? - PullRequest
0 голосов
/ 10 ноября 2019

У меня есть эта настройка:

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 голосов
/ 10 ноября 2019

о, почему я всегда нахожу ответ через 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]


...