Foros Python
datalist - Versión para impresión

+- Foros Python (https://foro.recursospython.com)
+-- Foro: Desarrollo (https://foro.recursospython.com/forumdisplay.php?fid=1)
+--- Foro: Web (https://foro.recursospython.com/forumdisplay.php?fid=3)
+--- Tema: datalist (/showthread.php?tid=886)



datalist - imagine_ls - 23-04-2021

Hola, tengo un datalist donde cargo el ID del cliente (dato.0) y el nombre del cliente (dato.1)
El problema es que quiero que me devuelva el ID, y sólo me devuelve el nombre del cliente.
Lo que si, necesito que en el imput me muestre el nombre del cliente, y que me devuelva el ID.
Les paso los 2 códigos, el del archivo HTML y el Python.


Código del HTML

Código:
<div class="form-group row">
    <label for="cliente" class="col-sm-2 col-form-label-sm">Cliente</label>

    <div class="col-sm-10">

        <input class="form-control form-control-sm" name="cliente" list="listClientes" id="cliente" placeholder="Cliente...">

        <datalist id="listClientes">

            {% for dato in dCliente %}

            <option id="{{dato.0}}" value="{{dato.1}}" >

            {% endfor %}

        </datalist>

    </div>
</div>

Código en Python

  1. @app.route('/add_reparacion', methods=['GET', 'POST'])
  2. def add_reparacion():
  3.  
  4.         if request.method == 'POST':
  5.  
  6.             fecha = request.form['fecha']
  7.  
  8.             cliente = request.form['cliente']
  9.  
  10.             print(fecha)
  11.  
  12.             print(cliente)
  13.             return redirect(url_for('reparaciones'))



RE: datalist - Francisco - 23-04-2021

Hola, bienvenido.

El problema es que la etiqueta <datalist> de HTML no soporta ningún atributo "id". Podrías usar <select>, que sí soporta un "value" (que sería tu ID) y un texto.

Código:
<select id="listClientes">
        {% for dato in dCliente %}
            <option value="{{dato.0}}">{{dato.1}}</option>
        {% endfor %}
</select>

Saludos