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
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
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!