我正在尝试在视图外部更新会话实例。基本上,我想将会话传递给外部对象,对其进行修改并保存。我想使用对象中的现有会话,并将其修改回视图。不幸的是,它没有更新,我正在将会话密钥传递给对象。
我同时尝试了self.session.modified = True
和self.session.save()
,但是它没有更新。我能够验证session_key在两个地方都相同。
我的观点:
from order import price
def order_view(request, cat_id=None, *args, **kwargs):
if not request.session.exists(request.session.session_key):
request.session.create()
price_obj = price.Price(current_session=request.session.session_key)
对象:
from django.contrib.sessions.backends.db import SessionStore
class Price():
def __init__(self, *args, **kwargs):
try:
self.session = SessionStore(session_key=kwargs["current_session"])
except KeyError:
log.error("Session error")
def structure_session_pricing(self):
if "pricing" in self.session:
del self.session["pricing"]
self.session["pricing"] = {}
self.session["pricing"]["Subject"] = 0
# self.session.modified = True
self.session.save()
我不明白为什么它不起作用。上面的代码只是整个过程的一部分,我可以在那里更好地说明问题,让我知道是否缺少某些东西/我省略了太多-我将张贴缺失的部分。
谢谢您的帮助!