モデルクラスでユーザープリンシパルにアクセスすることは可能ですか?
たとえば、Java の ejb クラスには、発信者の詳細 (認証されたユーザー) を提供する ejbcontext 変数が常に使用可能です。
モデルクラスのみのdjangoでこれを取得する方法はあるのでしょうか?
明らかに、request.user をモデル クラスに渡すことができますが、これは非常に面倒です。
モデルクラスでユーザープリンシパルにアクセスすることは可能ですか?
たとえば、Java の ejb クラスには、発信者の詳細 (認証されたユーザー) を提供する ejbcontext 変数が常に使用可能です。
モデルクラスのみのdjangoでこれを取得する方法はあるのでしょうか?
明らかに、request.user をモデル クラスに渡すことができますが、これは非常に面倒です。
あなたの質問からはあまり明確ではありませんが、モデルインスタンスから現在のユーザーへの「自動魔法の」アクセスが必要だと思います。
短い答えはノーです。それは不可能です。
モデルは通常のリクエスト/レスポンス フローの外から (たとえば、cronjob スクリプトから) 操作できるため、ユーザーが存在しないことさえあります。それとは別に、リクエストと認証されたユーザーは、モデルではなく、ビュー (MVC コントローラー) のドメインです。
あなたが得ようとしている最善の方法は、それらを使用したいモデルメソッドに request.user を手動で渡すことです.Python実行フレームとモジュールでできるいくつかの魔法inspect
がありますが、明示的は暗黙的よりもはるかに優れています. そして、前に言ったように、request.user (または request 自体) は常に存在するとは限りません。