複合データ構造「グリッド」を次のように渡すDjango/JQuery/MySQLアプリケーションを作成しています
return render_to_response('products.html', grid)
「grid」を一連のUI要素(「td」、「button」、「div」など、HTMLの「テーブル」にカプセル化されたもの)にレンダリングします。
典型的なユースケース:
- ユーザーがテーブル内の特定のUI要素をクリックします
- jQUery.click()が呼び出され、クリックされた要素の内部の「入力」タグが作成されます。
- ユーザーは要素からテキストを追加/変更/削除できます。
- フォーカスが失われると、jQuery.blur()が呼び出され、入力タグの削除など、クリックされた要素の元のプロパティが元に戻ります。
- jQuery.blur()はAJAX関数も呼び出します。ここで、.post呼び出しを実行して、ユーザーが変更したデータをURL(ビュー内の関数)に送り返します。
次に、ビュー内の呼び出された関数は、データベース内の新しい変更をコミットし、「成功」イベントをWebページに返します。
tc_model_instance.update(tc_id=json_data['id'])
このユースケースを通じて、ユーザーがデータを取得し、特定の要素へのフォーカスを放棄するとすぐに、変更がデータベースにコミットされることがわかります。INNODBでDBトランザクションを使用せずに、HTMLテンプレートの変更がモデルに非同期的に反映されるように、ビューとテンプレートの関連付けを作成するにはどうすればよいですか。ただし、必ずしもデータベースに書き込まれるとは限りません。
関連する質問:可能であれば、レンダリングされたテンプレートとビューの一部としてデータ構造の間にイベントベースの双方向の関連付けを作成し、WebブラウザーのUI要素または関連付けられたビューのデータに変更が加えられるようにします。常に同期しています。私はAJAXを最も目的に使用する予定です。フォームがこの点で意味があるかどうかはわかりません。
ありがとう。