gpt4 book ai didi

django - 如何创建一个在 Django 登录时设置 session 变量的中间件?

转载 作者:行者123 更新时间:2023-12-05 04:13:07 25 4
gpt4 key购买 nike

如问题所述,我想在用户登录时为用户 session 设置一些变量,并在注销或浏览器关闭时删除此变量。

最初我想通过编写自定义登录 View 来实现这一点,但中间件可能是更好的解决方案。

最佳答案

中间件不是实现解决方案的正确方法。我发现了信号并以这种方式实现了我的解决方案:

@receiver(user_logged_in)
def sig_user_logged_in(sender, user, request, **kwargs):
moderator = get_or_none(CompanyModerator, moderator__user=request.user)
if moderator:
if 'company_id' not in request.session:
request.session['company_id'] = moderator.company.id

不同之处在于,当需要只是在用户登录/注销时做某事时,每个 django 请求都会触发一个中间件。每次用户登录/注销时,我们都会向 session 中添加一些数据/对象模型等,以跟踪整个网站的用户。

你怎么看?

关于django - 如何创建一个在 Django 登录时设置 session 变量的中间件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38483979/

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