0
我有一個帶有UUID
類型主鍵的模型。用戶可以通過其ID來查詢模型。如果用戶輸入非uuid類型的id,我希望能夠捕獲錯誤並編組我自己的消息。但是,DataErrors會關閉事務並阻止我驗證所有其餘的ID。SQLAlchemy DataError關閉事務
如何重新打開交易或阻止交易結束?
代碼:
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.
錯誤:
InternalError: (InternalError) current transaction is aborted, commands ignored until end of transaction block
你不能。在將其發送到RDBMS之前,您應該驗證您的輸入。 – univerio
@univerio好的,謝謝。我儘可能多地假設我刪除了我的實現。使用sqlalchemy-utils UUIDType修復了它。 –