0

モデルクラスでユーザープリンシパルにアクセスすることは可能ですか?

たとえば、Java の ejb クラスには、発信者の詳細 (認証されたユーザー) を提供する ejbcontext 変数が常に使用可能です。

モデルクラスのみのdjangoでこれを取得する方法はあるのでしょうか?

明らかに、request.user をモデル クラスに渡すことができますが、これは非常に面倒です。

4

1 に答える 1

1

あなたの質問からはあまり明確ではありませんが、モデルインスタンスから現在のユーザーへの「自動魔法の」アクセスが必要だと思います。

短い答えはノーです。それは不可能です。

モデルは通常のリクエスト/レスポンス フローの外から (たとえば、cronjob スクリプトから) 操作できるため、ユーザーが存在しないことさえあります。それとは別に、リクエストと認証されたユーザーは、モデルではなく、ビュー (MVC コントローラー) のドメインです。

あなたが得ようとしている最善の方法は、それらを使用したいモデルメソッドに request.user を手動で渡すことです.Python実行フレームとモジュールでできるいくつかの魔法inspectがありますが、明示的は暗黙的よりもはるかに優れています. そして、前に言ったように、request.user (または request 自体) は常に存在するとは限りません。

于 2011-04-11T14:22:56.620 に答える