1

Momentan arbeite ich an einem Projekt, in dem ich versuche eine Zeile aus meiner ndb Einheit zu löschen. Der Code, den ich zum Löschen verwende, istAttributeError: 'Query' Objekt hat kein Attribut 'key' (AppEngine)

copyquery = joinrequest.query(joinrequest.email == "[email protected]") 
copyres = copyquery.get() 
copyres.key.delete() 

Aber es löscht es nicht. Es wird unter denen diesem Fehler

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 Modell Class Code

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() 
+1

Sind Sie absolut sicher, dass der Löschcode, den Sie uns zeigen, der Code ist, den Sie ausführen? Beachten Sie die vorletzte Zeile im Traceback 'copyquery.key.delete()' – snakecharmerb

+0

Lassen Sie es mich noch einmal überprüfen. –

+0

Ich habe es aktualisiert, aber jetzt bekomme ich diesen Fehler. –

Antwort

3

Modelle im ndb Paket hat einen Standard Attribut mit dem Namen 'Schlüssel'.

Ihr Modell überschreibt das Schlüsselattribut mit einer BlobKey-Eigenschaft.

diesem Grund sollten Sie die Ausnahme

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

erhalten, wenn delete auf den Schlüssel des Instanz aufrufen.

Benennen Sie Ihre key-Eigenschaft in etwas anderes um, damit der Aufruf key.delete() das Standardschlüsselattribut erreicht.

+0

Vielen Dank Mann :). Du hast meinen Tag gerettet :) –

Verwandte Themen