Tengo casillas de verificación dentro de un formulario. Estas casillas de verificación son una lista de personas creadas dinámicamente, ya que esta lista depende de quién haya iniciado sesión. Por ejemplo, para una vista de supervisor, solo enumerará a sus subordinados.
No estoy seguro de si me estoy perdiendo algo, pero los documentos y otras respuestas en SO dicen que debe tener la identificación de la entrada para recuperar los datos del formulario, pero en mi caso, usé la identificación de la persona en la lista para obtener el nombre del elemento de la casilla de verificación. Así que los nombres de mis casillas de verificación son como input-{{person_id}}
Ahora, en el método de publicación, no estoy seguro de cómo recuperar las casillas de verificación en el formulario. Intenté usar self.__dict__ pero parece que no puedo encontrar nada que pueda usar
link1 - esto especifica el nombre
link2 - esto también dice que la ID debe ser predeterminada
link3 : los documentos también dicen que si el parámetro no está incluido, se devolverá una lista vacía
¿Tal vez hay una solución en la que simplemente obtengo todos los elementos en el formulario y los hago ver en tornado? ¿Usando javascript tal vez?
Me equivoco, parece que si usa el mismo nombre para un elemento de casilla de verificación para todas las casillas de verificación dinámicas que crea, cuando lo envíe al controlador web de tornado, obtendrá los valores de todas esas casillas de verificación que tienen ese nombre .
los valores se recuperan utilizando get_arguments
¿Es esto lo que quieres decir?
HTML
<form> <input type="checkbox" id="box1" name="Name1" checked> <label for="box1">Name 1</label> <input type="checkbox" id="box2" name="Name2"> <label for="box2">Name 2</label> </form>jQuery
$("form input[type='checkbox']").each(function() { console.log($(this).attr('name')) })Producción
"Name1" "Name2"Puede recorrer el atributo request.body_arguments ; es dictado que asigna nombres de argumentos a listas de valores (para admitir múltiples valores para nombres individuales).
class MyHandler(tornado.web.RequestHandler): def post(self): for key, value in self.request.body_arguments.items(): print(f"key {key} has value: {value}") ... También hay atributos arguments (contiene argumentos de consulta y cuerpo) y query_arguments (contiene solo argumentos de consulta); Puedes consultar los documentos aquí .