В Django views.py я создаю сессию в методе A и пытаюсь прочитать ее в классе B. Ошибка: атрибут session не определен в классе B

Возможно, у этого есть простое решение. Надеюсь, вы сможете мне помочь.

Я отправил Ajax-пост в methodA в views.py. Все работает. Я хочу использовать переданную переменную в качестве сессии. Я думаю, что это работает, так как я могу вывести 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

Моя цель - вывести 'request.session['myvar']' внутри классаB (в importantmethod()). На выходе получается: объект 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
Вернуться на верх