AttributeError: объект «Запрос» не имеет атрибута «ключ» (AppEngine)

В настоящее время я работаю над проектом, в котором пытаюсь удалить строку из своего объекта ndb. Код, который я использую для удаления,

copyquery = joinrequest.query(joinrequest.email == "[email protected]")
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 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()  

person Shahzeb Akram    schedule 27.04.2016    source источник
comment
Я обновил его, но теперь я получаю эту ошибку.   -  person Shahzeb Akram    schedule 27.04.2016
comment
На самом деле это весь код. Я просто хочу удалить простую строку из класса модели ndb. Вы хотите, чтобы я поделился с вами структурой модельного класса?   -  person Shahzeb Akram    schedule 27.04.2016
comment
Я использую ключ Blob для хранения изображения.   -  person Shahzeb Akram    schedule 27.04.2016


Ответы (1)


Модели в пакете ndb имеют стандартный атрибут с именем «ключ».

Ваша модель перезаписывает ключевой атрибут свойством BlobKey.

Вот почему вы получаете исключение

AttributeError: 'BlobKey' object has no attribute 'delete'

при вызове delete по ключу экземпляра.

Переименуйте свойство key во что-то другое, чтобы вызов key.delete() достиг стандартного ключевого атрибута.

person snakecharmerb    schedule 27.04.2016