Ich habe ein Modell mit einem Primärschlüssel des Typs UUID
. Benutzer können das Modell anhand seiner ID abfragen. Wenn ein Benutzer eine Nicht-UUID-ID eingibt, möchte ich in der Lage sein, den Fehler abzufangen und meine eigene Nachricht zu verwalten. DataErrors schließen jedoch die Transaktion und hindern mich daran, alle verbleibenden IDs zu überprüfen.SQLAlchemy DataError schließt die Transaktion
Wie kann ich die Transaktion erneut öffnen oder verhindern, dass sie geschlossen wird?
Code:
try:
some_model.query.filter_by(id=1).first()
except DataError:
errors.append('failed :(')
other_model.query.filter_by(id=valid_uuid).first() # InternalError - Would work if it came first.
Fehler:
InternalError: (InternalError) current transaction is aborted, commands ignored until end of transaction block
Sie können nicht. Sie sollten Ihre Eingabe überprüfen, bevor Sie sie an Ihr RDBMS senden. – univerio
@univerio Okay danke. Ich ging davon aus, dass ich meine Implementierung entfernt habe. Using sqlalchemy-utils UUIDType hat es behoben. –