1
resposta

Como coletar uma lista de dados de um forms através do POST

Tenho uma modelagem de dados cujo uma relação 1N ocorre entre candidato e habilidades, sendo um candidato possível de ter N habilidades.

No Formulário coloquei N campos com o "name= 'Habilidades":

<input class="form-control" type="text" placeholder="Habilidades" name="Habilidades">
<input class="form-control" type="text" placeholder="Habilidades" style="margin-bottom: 10px; margin-top: 10px" id="Habilidades1" name="Habilidades"></div>

De tal forma, tentei buscar as informações na view para que pudesse salvar no banco de dados:

habilidades = request.POST['Habilidades']

Porém, dessa forma o get só me retorna o primeiro campo cujo name fosse: Habilidades; Não retornando todos os elementos que precisava.

Como poderia buscar essa informações coletando-a do POST?

1 resposta

Olá Gabriel, como você está?

Peço desculpas pela demora em obter um retorno.

Para conseguir capturar todos os campos que possuem o name igual a "Habilidades", podemos utilizar a função getlist(), que irá retornar uma lista de valores com a chave passada, neste caso "Habilidades". Por exemplo:

habilidades = request.POST.getlist('Habilidades')

Resultado:

['Cozinhar', 'Cantar']

Com base nisso, basta manipular a lista e tratar os dados da forma como preferir.

Caso queira se aprofundar em relação à função getlist(), deixo como recomendação a leitura da documentação da ferramenta:

O conteúdo recomendado acima está em inglês, mas vale ressaltar que o uso da língua inglesa é bem comum na área de tecnologia, porém, não se preocupe, caso não tenha afinidade com essa linguagem, recomendo que utilize o tradutor do navegador para uma melhor compressão.

Qualquer dúvida fico à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!