Ich möchte Zeilen abfragen und sie kopieren, während ich jeweils ein Attribut ändere. Hier ist mein Code.SQLAlchemy: KeyError beim Durchlaufen von Modellobjekten, um sie zu kopieren
In diesem Beispiel hat colObjs
zwei Objekte. Ich Schleife durch colObjs
, geht über jeden colObj
. Der erste Artikel in der Schleife wird ordnungsgemäß kopiert. Aber wenn ich versuche, den zweiten zu kopieren, erhalte ich diesen Fehler.
Traceback (most recent call last):
File "/path/to/local/lib/python2.7/site-packages/flask/app.py", line 1997, in __call__
return self.wsgi_app(environ, start_response)
File "/path/to/local/lib/python2.7/site-packages/flask/app.py", line 1985, in wsgi_app
response = self.handle_exception(e)
File "/path/to/local/lib/python2.7/site-packages/flask/app.py", line 1540, in handle_exception
reraise(exc_type, exc_value, tb)
File "/path/to/local/lib/python2.7/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/path/to/local/lib/python2.7/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/path/to/local/lib/python2.7/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/path/to/local/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/path/to/local/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/path/to/myApp.py", line 859, in copyGraphic
del colObj.id
File "/path/to/local/lib/python2.7/site-packages/sqlalchemy/orm/attributes.py", line 227, in __delete__
self.impl.delete(instance_state(instance), instance_dict(instance))
File "/path/to/local/lib/python2.7/site-packages/sqlalchemy/orm/attributes.py", line 679, in delete
del dict_[self.key]
KeyError: 'id'
Weiterhin ist die Ausgabe der print
Aussage über den ersten Punkt der Schleife zeigt die coloObj
id, aber die zweiten Ausgänge None
.
Warum tritt dieser Fehler auf? Wie repariere ich es?