@hkkf0

Python requests делает много post запросов, что делать?

Есть функция, в views.py которая должна делать POST запрос по API одного сайта. Но скрипт почему-то работает некорректно, обновление происходит очень медленно, и выдается ошибка ConnectionError. Но POST запрос отправляется несколько раз, и в итоге создает несколько записей в БД на сайте. Циклов вроде никаких нет. Что не так?

views.py
@login_required(login_url='login-main')
def send_program_to_orchard(request, orchard_pk, pk, user_pk):
    services.send_program_to_orchard(orchard_pk, pk)
    return redirect(request.path)


services.py
def make_json(program_id):
    program = Program.objects.get(id=program_id)
    program_substances = ProgramSubstance.objects.filter(program=program)
    response = {
        'program_number': program.number,
        'program_substances': []
    }
    for each in program_substances:
        response['program_substances'].append({'date': each.date.isoformat(), 'substance': each.substance, 'dose': float(each.dose),
                                               'measurement': each.measurement, 'comment': each.comment})
    return json.dumps(response)


def send_program_to_orchard(orchard_pk, program_pk):
    orchard = Orchard.objects.get(id=orchard_pk)
    headers = {'Authorization': f'Token {orchard.API_token}'}
    data = {'data': make_json(program_pk)}
    requests.post(orchard.program_API, headers=headers, data=data)
  • Вопрос задан
  • 191 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы