1
resposta

Loop for no HTML + campo input

Tenho uma tabela no meu banco chamado Alunos. A partir dessa tabela gerei um tablet HTML com um loop for para renderizar todos os alunos. Para cada aluno criado é gerado um formulário com checkbox na última coluna (que poder ser ou não marcado.). Independente de estar ou não marcado quero enviar as informações do Aluno + o valor de cada checkbox do aluno para uma Terceira tabela ao clicar no botão de enviar. Entretanto, todos os checkbox teriam o mesmo name, que é gerado no loop do HTML... Como eu poderia salvar cada aluno com seu respectivo checkbox no banco ao clicar no botão de enviar, mesmo com os name iguais?

No caso, daria pra fazer varios checkbox com o mesmo name, gerados a partir do input e com apenas 1 submit enviar esses dados pra view?

1 resposta

Oiii Raul, como você está?

Não tem problemas quanto ao uso do mesmo name, você pode utilizar o método getlist para capturar o valor do checkbox que possui o mesmo nome. A ideia é que esse método retorne uma lista dos dados de acordo com a chave passada. Nesse caso, a chave seria o valor do seu atributo name. Suponha um checkbox em que o name seja publicada, então em código teríamos algo como:

request.POST.getlist('publicada')

Como será retornado uma lista, é preciso entender que:

  • O campo publicada do aluno 1 será a posição 0 dessa lista
  • O campo publicada do aluno 2 será a posição 1 dessa lista
  • O campo publicada do aluno 3 será a posição 2 dessa lista e assim por diante...

Qualquer dúvida estou por aqui, tá bom?

Abraços e bons estudos!