Ich habe eine Eins-zu-viele-Beziehung NDB-Entity-Modell S/W-Post-und Kommentar-Modelle. Ich versuche, den Kommentar aus der Kommentarliste zu entfernen, nachdem ich die Kommentarentität aus db gelöscht habe. Unten ist mein Code zum Löschen Kommentar:Warum ValueError beim Löschen eines KeyProperty-Typs in eine Eins-zu-viele-Beziehung. Wie man es repariert?
idx = post.comments.index(ndb.Key('Comment',comment_id))
post.comments.pop(pos) # Remove comment from comments list
ich die Störung erhalte wie:
ValueError: Key('Comment', '6614661952700416') is not in list
Aber auf Datastore-Viewer ich dort den Kommentar sehen:
[datastore_types.Key.from_path(u'Comment', 6614661952700416L, _app=u'dev~testData2')]
Beitrag Modell :
class Post(ndb.Model):
title = ndb.StringProperty(required=True)
body = ndb.TextProperty(required=True)
created = ndb.DateTimeProperty(auto_now_add=True)
updated = ndb.DateTimeProperty(auto_now=True)
author_id = ndb.KeyProperty(kind=User)
comments = ndb.KeyProperty(kind=Comment, repeated=True)
H Auf einem similar question scheint es zu funktionieren.
das Versuchen Umwandlung ID zu einem int 'idx = post.comments.index (ndb.Key ('Kommentar', int (Kommentar_ID)))'. Die Fehlermeldung weist darauf hin, dass es als Zeichenfolge interpretiert wird. Auch die optionale '_app' im Viewer ist eher ungewöhnlich. Wie wurde der Kommentar erstellt? Passt "dev ~ testData2" zu Ihrer App? –
das das Problem behoben. Vielen Dank – ravi