2017-02-17 58 views

回答

1

一種選擇是使用線程局部current object。假設你正在使用的標準名稱authAuth對象,在一個模塊中,你可以這樣做:

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