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(...)
.