[Python] Obter valores Checkbox criados dinamicamente

Discussão em 'Python' iniciado por Stack, Outubro 4, 2024.

  1. Stack

    Stack Membro Participativo

    Desenvolvendo uma aplicação python utilizando o framework Flask para realizar um cadastro simple

    Estou com o seguinte problema, eu tenho um cadastro de licitações e essas licitações podem ter várias categorias, as categorias são cadastradas pelo usuário e aparecem na tela de cadastro da licitação em forma de checkbox para o mesmo ir selecionando as devidas categorias

    Até a parte listar todos os checkbox na tela da licitação, foi tranquilo e está funcionando, porém agora eu não sei qual é a maneira mais correta de se obter os ids das solicitações listadas. Existe uma forma simples de percorrer todo um grupo de checkboxes, afinal não sei o id deles por que são criados de acordo com oq está salvo no banco.

    A solução que pensei, foi buscar todos os ids de categoria no banco e ir buscando de acordo com o padrão que cirei para o nome, mas isso não me parece a forma mais correta.

    Para exemplificar melhor o problema, segue o código reduzido da minha página html e das minhas funções no controller

    Página html

    <form action="{{url_for('gravar_licitacao')}}" method="POST" role="form">
    <label>Categorias:</label>
    {% for categoria in categorias %}
    <input type="checkbox" id="cbCat{{ categoria._id }}" value="{{ categoria._id }}">{{categoria.nome}}
    {% endfor %}
    <hr>
    <input type="submit" value="Enviar" class="btn btn-default"/>
    </form>


    Controller

    @app.route("/cadastro_licitacao")
    def cadastro_licitacao():
    categorias = Categoria.query.all()
    return render_template("licitacao/cadastro_licitacao.html", categorias = categorias)

    @app.route("/gravar_licitacao", methods=["GET", "POST"])
    def gravar_licitacao():
    if request.method == "POST":
    #QUAL È A MANEIRA CORRETA PARA EU OBTER UMA LISTA COM AS CATEGORIAS AQUI

    return redirect(url_for("lista_licitacoes"))

    Continue reading...

Compartilhe esta Página