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

Levar informação de uma página para outra (HTML5 + Python 3)

Não estou conseguindo resolver um problema simples: tenho um dado do formulário que não estou conseguindo transportar para o formulário seguinte. Template "Fornecedores"

<tbody>
            {% for fornecedor in fornecedores %}
                <tr>
                    <input type="hidden" id="idfornecedor" name="idfornecedor" class="form-group" value="{{ fornecedor.idfornecedor }}">
                    <td><a href="{{ url_for('novo_pedido_fornecedor', idfornecedor=fornecedor.idfornecedor) }}">Novo Pedido</a></td>
                    <td>{{ fornecedor.cnpj }}</td>
                    <td>{{ fornecedor.nome }}</td>
                    <td>{{ fornecedor.grupo }}</td>
                    <td>{{ fornecedor.subgrupo }}</td>
                    <td>{{ fornecedor.marca }}</td>
                    <td>{{ fornecedor.representante }}</td>
                    <td>
                        <a href="{{ url_for('editar_fornecedor', idfornecedor=fornecedor.idfornecedor) }}">Editar</a>
                    </td>
                    <td>
                        <a href="{{ url_for('deletar_fornecedor', idfornecedor=fornecedor.idfornecedor) }}">Deletar</a>
                    </td>

                </tr>
            {% endfor %}
            </tbody>

novo_pedido_fornecedor:

<form action="{{ url_for('criar_pedido_fornecedor') }}" method="post">
        <fieldset>
          <div>
          <input type="hidden" id="idfornecedor" name="idfornecedor" class="form-group" value="{{ fornecedor.idfornecedor }}">
          </div>
          <div class="form-group">
            <label for="nome">Nome</label>
            <input type="text" id="nome" name="nome" class="form-control">
          </div>
          <div class="form-group">
            <label for="grupo">Grupo</label>
            <input type="text" id="grupo" name="grupo" class="form-control">
          </div>
          <div class="form-group">
            <label for="subgrupo">Subgrupo</label>
            <input type="text" id="subgrupo" name="subgrupo" class="form-control">
          </div>
          <div class="form-group">
            <label for="marca">Marca</label>
            <input type="text" id="marca" name="marca" class="form-control">
          </div>
          <button type="submit" class="btn btn-primary btn-salvar">Salvar</button>
          <a class="btn btn-danger" href="{{ url_for('index') }}">Voltar</a>
        </fieldset>
    </form>

Não consigo fazer o request do idfornecedor. O idfornecedor é uma chave estrangeira que o "Pedido" importa do "Fornecedor". Ele redireciona para o endereço certo (/novo_pedido_fornecedor?idfornecedor=75), mas não estou conseguindo fazer o fornecedor.idfornecedor ser "transportado" para pedido.idfornecedor. Dá esse erro aqui:

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

Alguma coisa me diz que é um problema simples de resolver, mas não estou conseguindo sair do lugar. :( Alguém, por favor, pode me ajudar a resolver isso?

2 respostas
solução!

Opa Everton, tudo bem?

O erro está falando que a função url_for não conseguiu criar a URL para o endpoint da função criar_pedido_fornecedor.

Segundo a mensagem de erro, você precisa passar o idfornecedor como parâmetro para montar a URL.

Tenta passar esse parâmetro na função url_for, por exemplo:

<form action="{{ url_for('criar_pedido_fornecedor', idfornecedor=fornecedor.idfornecedor) }}" method="post">

Talvez ele consiga montar a URL, se não conseguir fala aqui que tentamos outra coisa. :)

Muito obrigado. Deu certo aqui sim