在django中,如何在没有请求的情况下修改批处理会话?

时间:2018-03-26 11:46:17

标签: python django session

我想修改服务器部分中的一批django会话并为django会话创建字段,以便我可以在每个会话中放置一个列表。 环境:django 1.11.3 python 3.5

1,如何在没有请求的情况下通过字段线索(如用户ID \ phoneNO等)访问这些会话?

2,如何在请求之前设置会话格式?

1 个答案:

答案 0 :(得分:1)

您可以使用SessionStore修改视图外的会话。假设您正在使用数据库支持的会话,您可以为特定的用户列表更新特定的会话子集,如下所示:

from datetime import datetime
from django.contrib.sessions.backends.db import SessionStore
from django.contrib.sessions.models import Session

interesting_user_ids = []  # ids of users you want to modify sessions for
new_data = []  # list that you want to add to each session

for session in Session.objects.filter(expire_date__gt=datetime.now()):
    store = SessionStore(session_key=session.session_key)
    if store.get('_auth_user_id') in interesting_user_ids:
        store['new_data'] = new_data
        store.save()

显然,您需要根据需要填充interesting_user_idsnew_data的列表。