Реализация 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 в следующее представление. Мне не нужно хранить данные в базе данных, просто нужно отобразить ответ пользователю. Я думал, возможно, хранить это в объекте сессии запроса, но я надеюсь найти лучший способ.

Спасибо за ваше время.

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