2012-03-28 5 views
2

models.pyまたはシグナルハンドラでrequest.userにアクセスする方法はありますか?Djangoがmodels.pyまたはシグナルハンドラのユーザにログインしました

私はm2m_changedシグナルを使用していて、models.pyで定義しています。そこにログインしたユーザーにアクセスしたいと思います。

これを行う方法はありますか?

+1

この情報は必要ですか?このデータを何らかの方法でモデルレイヤーに渡す必要があり、適切な解決方法はデータの使用方法によって異なります。 –

+0

私は作成中の通知でそれを使用したいと思います。この場合の「アクター」はログインしているユーザーです。 –

答えて

1

私は、変更を行っているユーザーがレコード所有者または著者であるとは限りません。つまり、モデルルックアップは役に立たず、このデータをシグナルで渡す必要があります。

これを行うには、現在のユーザーを属性の1つとして持つカスタム信号を作成し、データが保存されているときにビューコードで出力することをお勧めします。

+0

完璧 - 私が必要とするもの - ありがとう! –

+0

実際には、m2m_changedを拡張する方法はありますか?m2m_changedのpost_addに送られる信号が本当に必要ですが、そこにrequest.userへのアクセス権があります。 –

+0

いいえ、すべての場所を変更しない限り、既存の信号は本当に変更できません。それが放出されるコード。あなたができることは、view.userをいくつかのモデル属性にビューコードで割り当て、シグナルハンドラでそれをチェックすることです。別のビューでデータが変更された場合や、ビューレベルがまったくない場合(スクリプト、バックグラウンドタスクなど)には表示されません。 –

関連する問題