Preservar los estados de casilla de verificación en la misma página con resultados de la consulta

StackOverflow https://stackoverflow.com/questions/1093539

  •  11-09-2019
  •  | 
  •  

Pregunta

Estoy usando Django, y tienen una página web estática con una forma de conseguir, y alrededor de 30 casillas. El usuario selecciona varias cajas, y hace clic en Buscar y, a consecuencia de una base de datos se devuelve a la misma página en una tabla. Sin embargo, todas las casillas de verificación se han limpiado, ya que HTML no tiene estado.

¿Cuál es la solución más simple para 'recordar' el estado de las casillas de verificación? He mirado a través de Django documentos, pero los ejemplos sólo tiene que utilizar una variable y un SI para una forma de texto único. Ciertamente, no tengo que comprobar si cada casilla se encuentra en el querydict? Además, mi forma fue creada a medida, en lugar de utilizar formularios de Django.

Finalmente, el proyecto planea usar JSON para la página y sólo actualizar la tabla, y que resolvería este problema, pero no estoy seguro de si iba a introducir muchos más, por ejemplo, el botón Atrás no funciona para las búsquedas anteriores.

¿Fue útil?

Solución

"¿Cuál es la solución más simple para 'recordar' el estado de las casillas de verificación?"

transacciones Web son sin estado.

Hay varias formas comunes de implementar estado.

  1. Sesiones. Si el usuario está conectado, tienen una sesión. cosas en su tienda sesión. La forma que publican entra en la sesión. Esto puede ser recuperada con el fin de publicar una nueva forma de nuevo a ellos.

  2. Cookies. Sesiones utilizan cookies. Se puede utilizar cookies manualmente. Usted tiene dos opciones aquí.

    • Ponga la información casilla de verificación formulario en la cookie. Enviar hacia abajo con la respuesta. Comprobar la galleta en cada pedido, por lo que sabe lo que debe sembrar el formulario.

    • Ponga una clave de sesión en la cookie. Esto es lo que hace Django para usted. No aplicar este mismo.

  3. Las cadenas de consulta en la URL. Tiene las mismas dos opciones al igual que con las cookies. O bien hacer los ajustes de una cadena base64 grande de edad, o pasar un identificador que hace las veces de la sesión.

Otros consejos

Hay maneras de solucionar el problema botón de retroceso (hash tags y otras cosas anexas a una URL). Sin embargo, la forma en que siempre he logrado esto es a través de eso. En esencia, me gustaría pasar las casillas de verificación como una matriz en la POST y luego, cuando se va a hacer ellos, sólo hacer un bucle que hará que todas las cajas que necesita, y comprobar contra POST para ver si ha sido marcada o no. Aparte de eso, no sé.

El uso de GET? Bueno. Acceder a las casillas de verificación de la misma manera se accede a los datos de TextField.

request.GET [ 'yourfield']

Utilice staments de impresión para inspeccionar la información disponible en GET.

request.GET de impresión [ 'yourfield']

Si se utiliza un objeto Form, a continuación, sólo podría pasar al constructor de la solicitud y hacer con ella. Si lo estás haciendo de forma manual, tendrá que hacer algunas finangling con la sesión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top