単純な使用例:ユーザーがレコードを更新した後、変更されたフィールドを取得して履歴テーブルに保存したいと思います。私はこの歴史をつかむためにdjango-ditryfieldsを使用しています。したがって、私の思考プロセスは、pre_saveシグナルを使用してすべての「ダーティ」フィールドを取得し、それらを履歴テーブルに格納することでした。
シグナルを使用しているときにrequest.userを取得できないという問題があります。これは、どのユーザーがレコードに変更を加えたかを確認するために必要です。私の他の考えは、モデルのsaveメソッドをオーバーライドすることでしたが、モデルからrequest.userを直接取得することもできません。この情報を取得するには、ビューからのユーザー情報を含む**kwarg['user']を送信する必要があります。これは問題ありませんが、コードの周りのさまざまな場所から保存呼び出しを行う予定です。オブジェクトを編集するたびにrequest.userを渡し続ける必要はありません。これが、これらすべてを処理するために、信号のような1つのスポットが欲しい理由です。おそらく、私がよく知らないミドルウェアはありますか?
そのようなことを達成するためのより良い方法はありますか?