2

データベースレコードを読み取り、変更して保存した django 管理者が 2 人 (またはそれ以上) いるとします。データベースに問題はありませんが、書き込んだレコードが上書きされたことに驚く管理者もいるでしょう。

この問題は対処されていますか? 1 つの方法は、レコードにフラグを設定する明示的な「編集中」ボタンを設定することです。別の管理者が同じレコードを読んで「編集中」をクリックすると、以前の編集が進行中であるという警告が表示されます。または、レコードが保存されるときにインクリメントされるレコードにフィールドを追加することもできます。レコードが読み取られたときとフィールドが異なる場合、管理者は、レコードが読み取られた後に他のユーザーによって変更されていることを警告されます。

これを処理するネイティブのジャンゴの方法はありますか?

4

2 に答える 2

2

Django 管理者は、すぐに使用できる書き込み競合保護を実装していません。自分で追加するのは難しくありません。個人的には、「バージョン番号フィールド」アプローチを採用します。

于 2009-05-08T14:25:14.287 に答える
0

通常、これはデータベースのトランザクション分離機能について調べたい場所です。それがデータベースのトランザクション分離機能がある理由です。

本当にそうしたくない場合は、アプリケーション層でこれを行うためのさまざまなパターンが存在しますが、それを行う標準的な方法はありません。一部の人々は、一種の「最終アクセス」タイムスタンプを設定し、その後の一定期間、その他はバージョン番号などを設定します。

于 2009-05-10T02:26:39.097 に答える