gpt4 book ai didi

django - 从 backend.get_user 访问 request.session

转载 作者:行者123 更新时间:2023-12-03 02:48:43 24 4
gpt4 key购买 nike

首先:这与 this 不同。 。 ModelBackend 没有 request 成员。

我想访问当前用户的 session ,但不想访问全局请求对象或他/她的 session ID。

为什么?我编写了自己的身份验证后端,扩展了 ModelBackend。因为我有函数 get_user (self, user_id),每个请求都会调用该函数(这是由 Django auth 中间件自动完成的)。不幸的是, get_user无权访问 request,但尽管如此,就我而言,我想检查 session 中的数据(为什么又?因为我没有本地数据库并从远程中间件获取所有数据。 session 将是进行某种缓存的舒适方式。

最佳答案

您可以使用微小的 ThreadLocalMiddleware 。它使请求对象随处可用。

from django_tools.middlewares import ThreadLocal

request = ThreadLocal.get_current_request()
# request.session <-- is now available

不要忘记将中间件添加到 settings.py 的 MIDDLEWARE_CLASSES 元组中:

MIDDLEWARE_CLASSES = (
...
'django_tools.middlewares.ThreadLocal.ThreadLocalMiddleware',
...
)

关于django - 从 backend.get_user 访问 request.session,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1091593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com