我有以下结构:
class Entry:
def has_items(self, request: Request) -> bool:
pass
什么是Pyramistic方法来缓存评估has_items()
以便
每次请求仅评估一次
缓存键是条目实例本身(id(entry)
)
缓存存储可以(当然?)在请求对象本身上
答案 0 :(得分:1)
正如马蒂诺已经说过的那样,我也认为config.add_request_method
是这样做的方法。我的代码中包含以下内容:
config.add_request_method(get_current_user_groups, 'groups', reify=True)
这样只需get_current_user_groups
作为唯一参数即可调用request
。 reify=True
告诉它将结果缓存为属性。现在,对request.groups
的任何调用都会为我提供该用户的组列表。
我不确定,但我认为该方法可能是"延迟加载"因为只有在第一次调用读取属性之后才进行调用。