Есть функция, в 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)