Реализация API сторонних производителей в Django
В настоящее время я работаю над проектом, в котором я использую API третьей стороны. В моем views.py у меня есть два представления, первое - FormView под названием GetShipmentRates, которое отображает форму пользователю, проверяет форму, делает вызов API для получения тарифов отгрузки, используя данные формы, а затем перенаправляет на второе представление, где будет отображаться ответ от API. Вот код:
class GetShipmentRates(FormView):
template_name = 'PartShipper/GetPitneyBowesShipmentRates.html'
form_class = ShipmentForm
success_url = reverse_lazy('PartShipper:view_rates')
def get(self, request, *args, **kwargs):
return super().get(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
return super().post(self, request, *args, **kwargs)
def form_valid(self, form):
return super().form_valid(form)
class DisplayRates(TemplateView):
template_name = 'PartShipper/DisplayRates.html'
def get(self, request, *args, **kwargs):
return super().get(self,request,*args, **kwargs)
def post(self,request,*args, **kwargs):
return super().post(self,request,*args, **kwargs)
Здесь я теряюсь - я хочу знать, какой метод должен вызывать API запрос, должен ли он обрабатываться в методе form_valid() моего FormView, или может быть в методе post моего FormView (Обратите внимание, что если я сделаю API запрос в методе post, то это произойдет до того, как форма будет проверена, что, вероятно, не идеально). Я также думал обработать запрос API во втором представлении, куда пользователь перенаправляется после заполнения формы.
В любом случае я также хочу знать, как я могу передать данные ответа API в следующее представление. Мне не нужно хранить данные в базе данных, просто нужно отобразить ответ пользователю. Я думал, возможно, хранить это в объекте сессии запроса, но я надеюсь найти лучший способ.
Спасибо за ваше время.