Ver Mensaje Individual
  #16 (permalink)  
Antiguo 13/11/2012, 13:17
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: ¿Cómo tratar varios artículos a la vez en Django?

Cita:
Iniciado por abdonroda Ver Mensaje
Muchísimas gracias razpeitia, me estás ayudando mucho.
De nada.


Cita:
Iniciado por abdonroda Ver Mensaje
¿'{{formset.management_form}}' qué es? ¿qué hace?
Documentación

Cita:
Iniciado por abdonroda Ver Mensaje
¿Por qué donde está puesto '{{recambio.recambio.value}} {{recambio.recambio.as_hidden}}' sale el ID del recambio en vez del nombre? He probado con '{{recambio.recambio.nombre.value}} {{recambio.recambio.nombre.as_hidden}}', pero así no sale nada.
Cuando iteras el formset, lo que haces es que cada iteración es un form, recambio es un muy mal nombre para esa variable. Uso recambio.recambio.value para que solo me devuelva el valor (nada de editar este valor) y uso as_hidden por que al hacer el post request es necesario que vayan todos los valores. (Ver respuesta de arriba).

Cita:
Iniciado por abdonroda Ver Mensaje
¿Por qué repites los cambios añadiendo 'as_hidden'? ¿Porque esos campos no van a ser editados?
Exacto. De hecho en primera imagen que pusiste lo único editable que pusiste fue las unidades. Otra cosa es que te recomiendo es que no confíes en lo que regresa en campo precio (en el post request), recuerda siempre hacer el calculo según las unidades.

Cita:
Iniciado por abdonroda Ver Mensaje
¿Por qué usas '{{recambio.fields.id.initial}}' en vez de '{{recambio.id.value}}'? Nunca había usado esa manera que usaste.
¿Haz intentado con recamio.id.value?

Cita:
Iniciado por abdonroda Ver Mensaje
¿Por qué añades '{{recambio.id}}'? Si además no sale "impresa" la id en la página.
Por default form.id es el id del form y no del objeto en si. Ademas sale impresa como un hidden input.


Cita:
Iniciado por abdonroda Ver Mensaje
Si en el input de las unidades se introduce algún carácter no numérico, no valida los valores introducidos como otras veces que he hecho formularios. ¿Cómo he de hacer para que sí lo valide y me salga el mensajito "Introduce un número entero"?
Para eso puedes usar el método is_valid y capturar las excepciones de validación que puedan surgir por si falta algún otro campo.

Por ultimo para desplegar que hubo un o varios errores puedes añadir al response una variable que sea una lista de errores, si esta vacía no hay errores si hay entonces desplegar los errores.