2016-08-29 4 views
1

私はsqlalchemy-continuumを使用するよう勧告しました。これは、箱から欲しいものを非常に多くするようです。トランザクションにUser列を使用する方法は?

デフォルトでは、ORMはユーザー列があるとみなします。私は確かに編集者の名前を保存したいのですが、documentationは、実際にバージョン管理されたテーブルを使用するときにそのようなオブジェクトを指定する方法については何も言わずに、 "これはユーザークラスを指定する方法です"としか言いません。

トランザクションの担当ユーザーを指定する方法を教えてください。 コミットメッセージ/理由/引用(VARCHAR)を各トランザクションに追加する同様の方法はありますか?あなたには、いくつかのグローバルスコープ(flask.g様またはflask.request)からユーザーを得ることができる場合、あなたはtransaction_args()メソッドを実装し、プラグインを作成することができます

答えて

0

from sqlalchemy_continuum.plugins import Plugin 


class UserPlugin(Plugin): 

    def transaction_args(self, uow, session): 
     return { 
      'user_id': get_user_from_globals() 
     } 

plugins/flask.pyまたはpyramid_plugin.pyを参照してください。 Userモデルの主キー値を返す必要があります。

TransactionMeta pluginで追加のデータを別のテーブルに保存することができます。 Transactionクラス自体を拡張するための、文書化されたAPIはありません。 TransactionFactoryによって作成されますが、それ以降のバージョンで変更される可能性があります。追加のデータを分けておくことはおそらく良い考えです。

関連する問題