AttributeError: 'Query' object has no attribute 'key' (AppEngine)
AttributeError: 'Query' object has no attribute 'key' (AppEngine)
目前我正在做一个项目,在这个项目中我试图从我的 ndb 实体中删除一行。我用于删除的代码是
copyquery = joinrequest.query(joinrequest.email == "abc@test.com")
copyres = copyquery.get()
copyres.key.delete()
但它并没有删除它。它给出了这个错误
Traceback (most recent call last):
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1535, in __call__
rv = self.handle_exception(request, response, e)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1529, in __call__
rv = self.router.dispatch(request, response)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1278, in default_dispatcher
return route.handler_adapter(request, response)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1102, in __call__
return handler.dispatch()
File "C:\Users\shaizi\PycharmProjects\WildPakistan\gigster\main.py", line 203, in dispatch
webapp2.RequestHandler.dispatch(self)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 572, in dispatch
return self.handle_exception(e, self.app.debug)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 570, in dispatch
return method(*args, **kwargs)
File "C:\Users\shaizi\PycharmProjects\WildPakistan\gigster\main.py", line 798, in get
copyres.key.delete()
AttributeError: 'BlobKey' object has no attribute 'delete'
NDB 型号Class代码
class joinrequest(ndb.Model):
name = ndb.StringProperty(required=True)
email = ndb.StringProperty(required=True)
password = ndb.StringProperty(required=True)
gender = ndb.StringProperty(required=True)
d = ndb.StringProperty(required=True)
m = ndb.StringProperty(required=True)
y = ndb.StringProperty(required=True)
phoneno = ndb.StringProperty(required=True)
address = ndb.StringProperty(required=True)
city = ndb.StringProperty(required=True)
country = ndb.StringProperty(required=True)
selfdescription = ndb.StringProperty(required=True)
key = ndb.BlobKeyProperty()
ndb 包中的模型有一个名为 'key' 的标准属性。
您的模型正在用 BlobKey
属性.
覆盖关键属性
这就是你得到异常的原因
AttributeError: 'BlobKey' object has no attribute 'delete'
在实例的密钥上调用 delete
时。
将您的 key
属性 重命名为其他名称,以便调用 key.delete()
将达到标准键属性。
目前我正在做一个项目,在这个项目中我试图从我的 ndb 实体中删除一行。我用于删除的代码是
copyquery = joinrequest.query(joinrequest.email == "abc@test.com")
copyres = copyquery.get()
copyres.key.delete()
但它并没有删除它。它给出了这个错误
Traceback (most recent call last):
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1535, in __call__
rv = self.handle_exception(request, response, e)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1529, in __call__
rv = self.router.dispatch(request, response)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1278, in default_dispatcher
return route.handler_adapter(request, response)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1102, in __call__
return handler.dispatch()
File "C:\Users\shaizi\PycharmProjects\WildPakistan\gigster\main.py", line 203, in dispatch
webapp2.RequestHandler.dispatch(self)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 572, in dispatch
return self.handle_exception(e, self.app.debug)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 570, in dispatch
return method(*args, **kwargs)
File "C:\Users\shaizi\PycharmProjects\WildPakistan\gigster\main.py", line 798, in get
copyres.key.delete()
AttributeError: 'BlobKey' object has no attribute 'delete'
NDB 型号Class代码
class joinrequest(ndb.Model):
name = ndb.StringProperty(required=True)
email = ndb.StringProperty(required=True)
password = ndb.StringProperty(required=True)
gender = ndb.StringProperty(required=True)
d = ndb.StringProperty(required=True)
m = ndb.StringProperty(required=True)
y = ndb.StringProperty(required=True)
phoneno = ndb.StringProperty(required=True)
address = ndb.StringProperty(required=True)
city = ndb.StringProperty(required=True)
country = ndb.StringProperty(required=True)
selfdescription = ndb.StringProperty(required=True)
key = ndb.BlobKeyProperty()
ndb 包中的模型有一个名为 'key' 的标准属性。
您的模型正在用 BlobKey
属性.
这就是你得到异常的原因
AttributeError: 'BlobKey' object has no attribute 'delete'
在实例的密钥上调用 delete
时。
将您的 key
属性 重命名为其他名称,以便调用 key.delete()
将达到标准键属性。