私は現在のユーザーにモジュールでアクセスする必要があるweb2pyアプリケーションで作業していますので、web2pyモジュールで現在のユーザーにアクセスする可能性があります?モジュールでlogged_inにアクセスする:: web2py
おかげ
私は現在のユーザーにモジュールでアクセスする必要があるweb2pyアプリケーションで作業していますので、web2pyモジュールで現在のユーザーにアクセスする可能性があります?モジュールでlogged_inにアクセスする:: web2py
おかげ
は、1つのオプションは、ローカルcurrent
objectスレッドを使用することです。モジュールには、あなたが行うことができます、あなたがAuth
オブジェクトのための標準的な名前auth
を使用していると仮定すると:
from gluon import current
def myfunction():
user = current.globalenv['auth'].user
あなたはまた、明示的にモデルファイル内のcurrent
の属性としてユーザーオブジェクトを追加することができます。
from gluon import current
current.auth_user = auth.user
このモジュールでは、current.auth_user
にアクセスできます。
としてはhereを指摘し、あなたはcurrent
オブジェクトは、各スレッドに対してローカルですが、このような割り当てがする場合にのみ、一回行われますので、これはです(モジュール内でトップレベルの変数やクラス属性にcurrent
オブジェクトのプロパティを割り当てるべきではありませんモジュールが最初にインポートされます)。
別のオプションは、モジュールの関数またはクラスにauth
オブジェクトを渡すだけです。例えば、モジュール内:
def myfunction(auth):
user = auth.user
私はその後、私はこのエラーを取得していますグルーオンのインポート現在 current.auth_user からこの のようなモジュールでそれにアクセスしようとしています。 *** AttributeError: 'thread._local'オブジェクトには属性がありません 'auth_user' – Mahendra