如何在ndb数据库(python)中通过查询删除记录?

Ank*_*wal 2 google-app-engine python-2.7 google-cloud-datastore

我是Google App Engine的新手.如果我的问题看起来很愚蠢,请耐心等待.我想通过查询删除整个记录.在这段代码中,我传递了记录的访问令牌,这是我模型的一个字段,并删除了具有该访问令牌的所有记录,但我收到错误"模块中没有删除()".请给我一些解决方案.提前致谢.

class deletehandler(webapp2.RequestHandler):
    def get(self):
        access_token=self.request.get('access_token')
        gprofiles=User.query(User.access_token==access_token)
        for g in gprofiles:
            ndb.key.delete(g)
            self.response.out.write("Profile is deleted")
Run Code Online (Sandbox Code Playgroud)

Gwy*_*ell 6

delete()方法是一个实例方法.试试这个:

for g in gprofiles:
  g.key.delete()
  self.response.out.write("Profile is deleted")
Run Code Online (Sandbox Code Playgroud)

如此处所述

更新:

正如帕特里克所提到的,仅批量密钥查询更有效:

ndb.delete_multi([key for key in gprofiles.iter(keys_only=true)])
Run Code Online (Sandbox Code Playgroud)

  • 你应该真正做一个只有键的查询:`ndb.delete_multi([g.key for g in gprofiles.iter(keys_only = true)]) (3认同)