Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Imagem sai após edição do formulário

Se eu editar apenas o formulário de um jogo já com capa, ao salvar novamente apenas com o formulário editado a capa sai

2 respostas
solução!

Oi Larissa, tudo bem?

Realmente isto acontece. E para corrigir isto, basta na rota de atualizar verificarmos se o arquivo foi modificado ou não, pois caso ele não seja alterado o request.files['arquivo'] irá nos retornar vazio e caso o arquivo de capa seja alterado ele irá nos retornar aquele arquivo.

@app.route('/atualizar', methods=['POST',])
def atualizar():
    nome = request.form['nome']
    categoria = request.form['categoria']
    console = request.form['console']
    jogo = Jogo(nome, categoria, console, id=request.form['id'])

    arquivo = request.files['arquivo']
    if arquivo:
        upload_path = app.config['UPLOAD_PATH']
        timestamp = time.time()
        deleta_arquivo(jogo.id)
        arquivo.save(f'{upload_path}/capa{jogo.id}-{timestamp}.jpg')
    jogo_dao.salvar(jogo)
    return redirect(url_for('index'))

Este if é para dizer: se há algo na variável arquivo faça os procedimentos para salvar a nova imagem e caso não tenha, salve apenas o jogo e não modifique a imagem.

Pegou a ideia?

Qualquer dúvida é só falar. Espero ter ajudado. Abraços e bons estudos!

Muito obrigada Nádia!

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