消息有很多錯誤:"DatabaseError: current transaction is aborted, commands ignored until end of transaction block"從python-psycopg更改為python-psycopg2作為Django項目的數據庫引擎。代碼保持不變,只是不知道這些錯誤來自何處。
3 回答

哆啦的時光機
TA貢獻1779條經驗 獲得超6個贊
當查詢產生錯誤并且您嘗試運行另一個查詢而不先回滾事務時,這就是postgres所做的。(您可能會認為這是一項安全功能,可以防止您破壞數據。)
要解決此問題,您將需要弄清楚錯誤查詢在代碼中的何處執行。在您的PostgreSQL服務器中使用log_statement和log_min_error_statement選項可能會有所幫助。

慕容3067478
TA貢獻1773條經驗 獲得超3個贊
要消除錯誤,請在修復代碼后回滾上一個(錯誤的)事務:
from django.db import transaction
transaction.rollback()
您可以使用try-except來防止發生錯誤:
from django.db import transaction, DatabaseError
try:
a.save()
except DatabaseError:
transaction.rollback()
添加回答
舉報
0/150
提交
取消