Djangoトランザクションを読み、プロジェクトで使用する予定ですが、ここで知りたい質問がいくつかあります。実際、登録時にトランザクションを使用したいのですが、登録時に2〜3箇所で挿入を行っているので、クエリが失敗した場合は挿入を行わないようにします。commit_on_success
したがって、Djangoのドキュメントによると、トランザクションのタイプを使用する必要があると思います。
しかし、これらのトランザクションはデータベースに依存しているのでしょうか、それともすべてDjangoの内部にあるのでしょうか。DBストレージエンジンを変更する必要があるかどうか。別のストレージエンジンで使用する必要がある場合、またはSQLの1つのテーブルとnosqlの1つのテーブルなど、将来別のデータベースで使用する必要がある場合はどうなりますか?それともこれは問題ではありませんか?
また、私がそれを次のように使用する場合:
from django.db import transaction
def function1():
#code here without transaction
@commit_on_success
def function2():
#code here with transaction
次に、すべてのメソッドコードが成功した場合、関数2はcommitで動作しますが、トランザクションがインポートされる前と同様に、関数1はどうなりますか?function1にはどのような種類のトランザクションが適用されますか?function1にトランザクションを持たせず、他のモデルのフォームコードで機能するように正常に動作させたいので、どうすればよいですか?
だから私の質問は、トランザクションなしですべてのものを正常に動作させるが、トランザクション付きのメソッドを1つ持つにはどうすればよいかということです。デコレータを使用して機能し、他のメソッドは正常に動作しますか、それとも何か他のことをする必要がありますか?そして、これらのトランザクションは、データベースとInnoDBのようなデータベースストレージエンジンに依存していますか?これらのトランザクションは、Djangoの内部トランザクションにすぎませんか?