会话变量未保存外部视图

时间:2020-07-28 18:07:30

标签: python django session django-views

我正在尝试在视图外部更新会话实例。基本上,我想将会话传递给外部对象,对其进行修改并保存。我想使用对象中的现有会话,并将其修改回视图。不幸的是,它没有更新,我正在将会话密钥传递给对象。

我同时尝试了self.session.modified = Trueself.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()

我不明白为什么它不起作用。上面的代码只是整个过程的一部分,我可以在那里更好地说明问题,让我知道是否缺少某些东西/我省略了太多-我将张贴缺失的部分。

谢谢您的帮助!

0 个答案:

没有答案