2011-11-07 61 views
0

我有模式是这样的:如何在一个Pylons模型中获取当前用户?

class CreatedMixin(DeclarativeBase): 
    __abstract__ = True 

    @declared_attr 
    def updated_by(cls): 
     return Column(Integer, ForeignKey('user.user_id', 
         onupdate="cascade", ondelete="restrict"), 
         onupdate=CURRENT_USER_ID) 

    updated_at = Column(DateTime, nullable=False, default=dt.now(), 
         onupdate=dt.now()) 

而且随着repoze.what-快速启动身份验证。如何获得CURRENT_USER_ID?

回答

2

我觉得你可以做以下

identity = request.environ.get('repoze.who.identity') 

和刚开的用户ID

id = identity['user'].id 
+0

当我导入模块“从挂架导入请求”,并使用“身份= request.environ。得到( 'repoze.who.identity')”。我有以下错误“TypeError:没有对象(名称:请求)已注册此线程” – uralbash

+0

这很奇怪,它确实对我有用。您是否在模型__init__.py上导入了请求模块? – webjunkie

+0

我在我的模型__init__.py中导入请求。然后写上“identity = request.environ.get('repoze.who.identity')”。但是无论如何得到了这个错误:TypeError:没有对象(名称:请求)已注册此线程 – uralbash