Django: Наследование класса с данными API

Я хочу запрашивать у пользователя пароль в моем первом представлении и в других представлениях использовать этот пароль для отображения данных на фронтенде. До сих пор я просто сохранял пароль в сессии и инстанцировал API каждый раз, когда кликал на другое представление.

Я хочу сохранить состояние этого вызова API (например, токен) в этом классе. Я подумал, что могу попробовать с наследованием - я хочу знать в целом, хороший ли это подход, а также что я делаю неправильно:

class APItoInherit:
    def create(self, server, username, password):
        self.APISession = theAPI("https", server, username, password)
        return self.APIsession


class FirstView(APItoInherit, TemplateView):
    def post(self, request, *args, **kwargs):
        ... # get Form data for server, user, pass ...

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        ...
        api = self.create(self.request.session.get('url'), 
                          self.request.session.get('usr'), 
                          self.request.session.get('pwd'))
        ...
        return context


class SecondView(APItoInherit, TemplateView):
    def get_context_data(self, **kwargs):    
        context = super().get_context_data(**kwargs)
        ...
        tmp = someAPIClassFunction(self.APISession) # <--- break                  
        ...
        return context

Моя цель - инстанцировать API в первом view (например, для получения токена) и в дальнейшем использовать его для вызова методов реализации класса API. Если это не может быть сделано таким образом, есть ли другой способ, которым я могу удобно сохранить и передать объект API (APISession) другим представлениям? Сейчас я перезапускаю объект каждый раз, используя request.session.get(...).

Вернуться на верх