2017-02-17 2 views

答えて

1

は、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 
+0

私はその後、私はこのエラーを取得していますグルーオンのインポート現在 current.auth_user からこの のようなモジュールでそれにアクセスしようとしています。 *** AttributeError: 'thread._local'オブジェクトには属性がありません 'auth_user' – Mahendra

関連する問題