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

时间:2014-05-27 06:56:15

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

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

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")

1 个答案:

答案 0 :(得分:6)

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

for g in gprofiles:
  g.key.delete()
  self.response.out.write("Profile is deleted")

记录在案here

更新:

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

ndb.delete_multi([key for key in gprofiles.iter(keys_only=true)])