3
respostas

Erro ao tentar aplicar a alteração depois de editar

Não estou conseguindo fazer funcionar a função editar , já conferi o código que fiz. Segue minhas funções:

@app.route('/editar/<int:id>')
def editar(id):
    if 'usuario_logado' not in session or session ['usuario_logado'] == None:
        return  redirect(url_for('login', proxima = url_for('editar')))
    jogo = jogo_dao.busca_por_id(id)

    nome_imagem = recupera_imagem(id)
    flash(nome_imagem)
    return render_template('editar.html', titulo='Editando Jogo', jogo= jogo, capa_jogo= nome_imagem)

def recupera_imagem(id):
    for nome_arquivo in os.listdir(app.config['UPLOAD_PATH']):
        if f'capa{id}' in nome_arquivo:
            return nome_arquivo

def deleta_arquivo(id):
    arquivo = recupera_imagem(id)
    flash(arquivo)
    caminho = os.path.join(app.config['UPLOAD_PATH'], arquivo)
    flash(caminho)
    os.remove(caminho)

@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']
    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'))

Minha estrutura de pastas está correta quanto ao indicado e consigo salvar tranquilamente ao adicionar um novo.

Já o erro por sua vez retorna para a função deletar arquivo.

Erro : TypeError: join() argument must be str or bytes, not 'NoneType'

3 respostas

Oi Abílio, tudo bem?

Este erro ocorre quando você vai editar a imagem de um jogo que não tem imagem cadastrada? Em jogos que você adicionou uma imagem ocorre como esperado?

Sim, quando adiciono fica tranquilo .

Aqui está minha estrutura de pagina : https://github.com/AbilioNB/jogoteca-flask/tree/dev-persiste-pt2

Abílio, bom dia. Respondi justamente essa dúvida neste tópico, veja se te ajuda. Qualquer dúvida é só falar, estou a disposição.

Abraços e bons estudos!

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