我怎样才能做到这一点
request.session['key'] = 'value'
Run Code Online (Sandbox Code Playgroud)
对于user_id为47的用户?
请记住,我目前没有使用该用户登录,我想在shell中执行此操作.
请参阅标题为"在视图外使用会话"的会话文档部分.
但问题是Django不会将用户存储在会话中(出于安全考虑,设计).因此,检索会话的唯一方法是通过它的关键.该密钥与用户的客户端一起存储,并传递给服务器以将会话与登录用户相关联.换句话说,您将很难确定哪个会话属于哪个用户.
更重要的是,会话数据实际上也在数据库中加密,因此甚至没有任何方法可以直接查询存储在其中的用户ID.以下内容可行,但您必须逐个查询每个会话才能获得正确的用户.根据您的数据库当前有多少会话,这可能非常昂贵.标记为自行承担使用风险
from django.contrib.sessions.models import Session
from django.contrib.sessions.backends.db import SessionStore
for session in Session.objects.all():
data = SessionStore().decode(session.session_data)
if data.get('_auth_user_id') == user_id_you_want:
user_session = SessionStore(session_key=session.session_key)
# you can modify the session data here like normal, then:
user_session.save()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1302 次 |
| 最近记录: |