我创建简单的学习应用:其中包含Status
模型和Tasks
模型的列,例如trello.com。
当我将任务拖放到其他状态列时,我使用Ajax调用将页面更新为单个用户。问题是,我如何更新所有会话的元素?
我需要一些外部的东西,或者我只能在django上做这件事吗?
很抱歉,如果我的问题过于宽泛,我不会要求为我编写代码,我只是在寻求建议。
答案 0 :(得分:2)
假设您使用的是标准的Django Session模型:
from django.contrib.sessions.models import Session
all_sessions = Session.objects.all()
all_current_sessions = Session.objects.filter(expire_date__lte=timezone.now())
# What fields are available in sessions?
print(Session._meta.fields)
# Standard would be - (<django.db.models.fields.CharField: session_key>, <django.db.models.fields.TextField: session_data>, <django.db.models.fields.DateTimeField: expire_date>
for session in all_sessions:
session_data = session.get_decoded()
print(session_data)
要写入session_data,您需要重新编码session_data
。有关该信息,请参阅此great post。
编辑:要添加到此内容,请参阅this answer,其中显示了如何使用SessionStore
重新编码会话数据。
来自链接的答案 -
from django.contrib.sessions.backends.db import SessionStore
# look up our sessions in session store
for session_key in logged_in:
s = SessionStore(session_key=session_key)
s['test'] = True
s.save()
s.modified
# True