Como se indica a continuación, estoy tratando de pasar los datos del diccionario a la API.
def create_flow_and_phases(request): data = { "name": "name_example", "description":"description_example", "category": 2, "precedents": [2,3], "users": [1], "phases": [{ "name": "phase_name", "description": "description name", "sequence_number": 1, "precedents": [1] }] } # Making a POST request to save flow_and_phases url = API_HOST + "/api/flows/save_flow_and_phases/" answer = requests.post(url, data=data, headers={'Authorization': 'Token ' + request.session['user_token']}) if not answer.ok: raise Exception("An error occurred while creating flow.")A continuación, puede ver que el formato de datos del diccionario es el mismo que se pasa en Insomnia a la API y que funciona perfectamente.
{ "name": "Testando criação de fluxo pelo Insomnia", "description": "Fluxo teste simulando informações de trato e colheita de café na fazendo fictícia Quipo", "category": 2, "precedents": [2, 3], "users": [1], "phases": [ { "name": "Trato anual", "description": "Descrição teste fase 1.", "sequence_number": 1, "precedents": [] }, { "name": "Trato anual 2", "description": "Descrição teste fase 2.", "sequence_number": 2, "precedents": [1] } ] }El backend recibe datos de la siguiente manera
flow_data = dict(data) # data is passed as parameterPero cuando voy a ejecutar la depuración, los datos que se refieren a las fases no se pasan a la API como se muestra en la captura de pantalla a continuación.
Como se muestra en la imagen, la lista con las fases no se está pasando. ¿Lo que está sucediendo? ¿Cualquier sugerencia?
Publique los datos como JSON, los datos anidados no funcionan como datos POST normales. Puede pasar los datos en el parámetro json y las solicitudes deben manejar los encabezados y la serialización por usted.
answer = requests.post(url, json=data, headers={'Authorization': 'Token ' + request.session['user_token']})