Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

MultiValueDictKeyError ao dar submit para atualizar um objeto

Estou tentando atualizar as propriedados de um objeto "extinguisher" utilizando uma página HTML, porém ao dar submit, recebo o retorno MultiValueDictKeyError devido a não ter identificado o valor para "POST" do campo "type_charger" conforme trackback da página, como faço para que ao selecionar a opção a página consiga pegar o valor e dar o post sem retonar o erro?

Página HTML

       <div class="col-md-6">
           <label><b>Tipo de Extintor</b></label>
               <div class="form-group">
                <select class="form-control form-control-md" name="type_charger" value="{{extinguisher.type_charger}}">
                    {% if extinguisher.type_charger == "Água" %}
                        <option selected value="Água">Água</option>
                        <option value="CO2">CO2</option>
                        <option value="PQS BC">PQS BC</option>
                        <option value="PQS ABC">PQS ABC</option>
                    {% elif extinguisher.type_charger == "CO2" %}
                        <option selected>CO2</option>
                        <option>Água</option>
                        <option>PQS BC</option>
                        <option>PQS ABC</option>
                    {% elif extinguisher.type_charger == "PQS BC" %}
                        <option selected>PQS BC</option>
                        <option>Água</option>
                        <option>CO2</option>
                        <option>PQS ABC</option>
                    {% else %}
                        <option selected>PQS ABC</option>
                        <option value="Água">Água</option>
                        <option value="CO2">CO2</option>
                        <option value="PQS BC">PQS BC</option>
                    {% endif %}
                </select>
               </div>
       </div>
   </div>

Método para atualizar o objeto

def update_extinguisher(request):
    if request.method == 'POST':
        extinguisher_id = request.POST['extinguisher_id']
        e = Extinguisher.objects.get(pk=extinguisher_id)
        e.tag = request.POST['tag']
        e.type_charger = request.POST['type_charger']
        e.area = request.POST['area']
        e.weight = request.POST['weight']
        e.validity = request.POST['validity']
        e.due_date = request.POST['due_date']
        e.status = request.POST['status']
        e.observation = request.POST['observation']
        e.company = request.POST['company']
        e.fleet = request.POST['fleet']

        if 'image' in request.FILES:
            e.image = request.FILES['image']

        e.save()

        messages.success(request, 'Extintor salvo com sucesso!')

        return redirect('list_extinguiser')

Trackback

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Solução Encontrada

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software