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