在Django views.py中,我在方法a中创建了一个会话,并尝试在类B中读取它



这可能有一个straigthforward解决方案。我希望你能帮助我。

我在views.py中向methodA提交了一篇Ajax Post。它有效。我想将提交的变量用作会话。我认为它可以工作,因为我可以打印request.session[]。但现在我想在另一个班上读这节课。参见以下内容:

@api_view(['POST'])
def methodA(request):
myvariable=request.data['list'] # This is an Ajax Post
request.session['myvar'] = myvariable # Creates session
print(request.session['myvar']) # It works. shows Ajax Post value
return JsonResponse({'success':True})
class classB(classC):
def myvarmethod(request):
print(request.session['myvar'])

def importantmethod(self):
self.myvarmethod()
...
return [...] # some stuff

我的目标是在类B(在importantmethod()中(中打印"request.session['myvar']"。输出为:对象classB没有属性session。我需要在哪里定义会话?我在settings.py中已经很好地定义了它。我错过了什么?

解决方案是:

@api_view(['POST'])
def methodA(request):
myvariable=request.data['list'] # This is an Ajax Post
request.session['myvar'] = myvariable # Creates session
print(request.session['myvar']) # It works. shows Ajax Post value
return JsonResponse({'success':True})
class classB(classC):
def myvarmethod(self):
print(self.request.session['myvar'])

def importantmethod(self):
self.myvarmethod()
...
return [...] # some stuff

最新更新