0

DMLクエリを作成するdjangoユーザーIDを含むdbスコープに変数を設定する必要があります。このようなもの :

CREATE OR REPLACE FUNCTION set_user_id(auser_id integer)
  RETURNS void AS
  'GD["user_id"] = auser_id'
  LANGUAGE plpythonu VOLATILE
  COST 100;

すべての DML の前にこの関数を呼び出して、そのユーザー ID を監査トリガーに渡します。それを行う簡単な方法はありますか?

4

1 に答える 1

0

特定のモデルに対してのみこれを行う必要がある場合saveは、モデルのメソッドをオーバーライドする必要があります。

使用しているモデルに関係なく、特定のデータベースにアクセスするモデル全体でこれを行う必要がある場合は、特定のデータベースに合わせて db バックエンドの独自のバリアントを作成する必要があります (この場合、postgresql と思われます) )。

このような何かがそれを行う必要があります:

from django.db.backends.postgresql_psycopg2.base import *

class DatabaseWrapper(DatabaseWrapper):
    def _cursor(self):
        cursor = super(DatabaseWrapper, self)._cursor()
        q = " ... enter your query here ..."
        cursor.execute(q % (arg1,arg2))
        return cursor
于 2012-05-03T14:18:10.593 に答える