2017-02-17 59 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