有没有办法访问当前用户对象或至少id而无法访问请求?我们在模型中说?
我使用金字塔和SQLAlchemy。
首先我想到了Singleton,但我认为当有更多用户时,这可能会返回错误的对象。
class UserSingleton(object):
user = None
def __new__(cls, user=None):
UserSingleton.user = user
return UserSingleton.user
@classmethod
def get(cls):
return cls.user
我需要将它与我的模型一起使用,但我不能在这里传递请求,因为这是由orm事件调用的:
@classmethod
def log(cls, description, log_type=None, name=None):
user = ??
audit_log = cls(
user_id=user.id if user else None,
description=description,
type=log_type,
name=name
)
DBSession.add(audit_log)
return audit_log
答案 0 :(得分:4)
好的,通过这样做找到了解决方案:
from pyramid.threadlocal import get_current_request
request = get_current_request()