3
有沒有任何方式訪問當前用戶對象或至少沒有訪問請求的ID?模型中說呢?金字塔得到當前用戶/用戶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
我不認爲數據庫事件中存在當前用戶,因爲它們發生在請求的上下文之外。 –
在您的函數中明確傳遞'request'或'user'的最佳實踐,而不是依賴於線程本地。 –