デフォルトでは、django管理サイト内のすべての更新はトランザクションとして行われることに気付きました。Django admin:DBトランザクションをオフにする
私はどちらかを行う必要があります。 - 取引(グローバルまたは特定の管理ビュー用) をオフにする - 管理インタフェースを介して保存されているエンティティの保存()メソッドの内部で、トランザクションをコミット
理由は私がsave()メソッドをオーバーライドし、ちょうど起こった変更について外部の非djangoシステムに通知しているということです。ただし、djangoはまだトランザクションをコミットしていないので、外部システムは更新を認識しません。
誰でもこれを達成するための提案はありますか?
グレート質問かもしれません。これはDjangoの管理者の競合状態の一般的な原因であり、Djangoがトランザクション内でトランザクションを使用していることを認識していない場合は、非常に不満な問題になります。 – Cerin
私たちはhttps://pypi.python.org/pypi/django-celery-transactionsで多くの成功を収めました。これが行うことは、バックグラウンドタスクが開始されたときに実行されているトランザクションが、タスクの実行を許可する前に完了していることを確認することです –