python django将变量从函数添加到会话中,同时从另一个视图函数访问它

python django将变量从函数添加到会话中,同时从另一个视图函数访问它,python,django,session,Python,Django,Session,我试图添加会话变量,但当第一个函数仍在运行时,无法从另一个函数访问它,示例如下 def index(request): request.session['logs'] = [] #I define the new variable here in session return render(request,"index.html") def assigntoken(request): #I got list of users from post request to assi

我试图添加会话变量,但当第一个函数仍在运行时,无法从另一个函数访问它,示例如下

def index(request):
   request.session['logs'] = []  #I define the new variable here in session
  return render(request,"index.html")

def assigntoken(request):
   #I got list of users from post request to assign token to each of them I call a class called AssignToken
    v = AssignToken() 
    #AssignToken class has attribute called log_lst I assign it to session
    request.session['log'] = v.log_lst #by making v global I can access it from another function while it still running, but request.session['logs'] is still empty until function finish, why?
    v.start(users)  #this will start loop in users list to assign tokens
    return redirect('/result')

def result(request):
    #while assigntoken function still running I should be able to access /result to see live logs but when I try to access request.session['logs'] I found it empty, it only has data after assigntoken finish running
    context = {'logs':request.session['logs']}
    return render(request,"results.html",context)
会话是在视图完成之后进行的。因此,当请求仍在处理时,您将看不到您的更改是有道理的


相反,您可以尝试使用
request.session.save()

在视图中手动保存会话,谢谢,当我请求时。session.save()第一个日志行出现在request.session['logs']中,但请求。在v.log\u lst更新时,会话['logs']仍然没有更新,直到视图完成,我需要请求。会话['logs']充当指向v.log_lst的指针,并在该对象列表updated@Amr:每个请求在其自己的内存空间中处理;实际上,在许多部署场景中,您的两个请求甚至不会由同一台计算机处理。因此,一个请求中的会话无法成为另一个请求中对象的指针。每次你想让其他请求看到结果时,你都需要显式保存。谢谢你提供的信息,有更好的方法吗?请注意,这对会话来说是一件奇怪的事情,这就是为什么这种动态更新没有真正记录在案的原因。@Kevin:谢谢你提供的信息,有更好的方法吗?你最好的办法可能是发布一个新的问题,描述你的目标是什么,并询问可能的架构。除了回答你的具体问题之外,这里没有足够的信息提供更多的建议。