1
resposta

werkzeug.routing.BuildError - Could not build url for endpoint 'editar'. Did you forget to specify values ['id']?

Pessoal, boa tarde.

Estou com um erro aqui no momento de editar algum item da minhas lista. E erro é o seguinte:

werkzeug.routing.BuildError

werkzeug.routing.BuildError: Could not build url for endpoint 'editar'. Did you forget to specify values ['id']?

Executei o projeto do professor e da o mesmo erro. O meu código está igual ao do professor..

No arquivo lista.html, estou passando o <a href="{{ url_for('editar', id=jogo.id) }}">Editar</a>

Não entendo o erro.

Desde já agradeço

1 resposta

Oiiii Danilo, tudo bem?

Testei o código do professor e este erro está ocorrendo quando o usuário não está logado e clica em editar, certo?

Isso está acontecendo porque no código, o professor esqueceu de passar o id quando faz o redirect para a página de login quando o usuário não está logado. No código(rota de editar) está da seguinte maneira:

if 'usuario_logado' not in session or session['usuario_logado'] == None:
        return redirect(url_for('login', proxima=url_for('editar')))

Porém, como a rota de editar recebe como parâmetro um id, é necessário passá-lo também:

if 'usuario_logado' not in session or session['usuario_logado'] == None:
        return redirect(url_for('login', proxima=url_for('editar', id=id)))

Com isso, o código não irá retornar o erro de que esquecemos de passar o id.

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