我有一个web2py应用程序,我编写了各种模块,其中包含业务逻辑和数据库相关的东西。在我尝试访问auth.settings.table_user_name
的其中一个文件中,但它不起作用,抛出错误为global name 'auth' is not defined
。如果我在控制器中写相同的行,它的工作原理。但我想在模块文件中访问它。请建议我该怎么做。
答案 0 :(得分:3)
在模型文件中,您可以在其中定义auth
:
from gluon import current
auth = Auth(db)
current.auth = auth
然后在一个模块中:
from gluon import current
def some_function():
auth = current.auth
....
有关详细信息,请参阅http://web2py.com/books/default/chapter/29/04/the-core#Accessing-the-API-from-Python-modules。
答案 1 :(得分:0)
我遇到了非常相似的错误(“未定义名称'auth'”)。不得不在views.py的顶部添加from django.contrib import auth
,并且有效。