Cita:
Iniciado por abdonroda Muchísimas gracias razpeitia, me estás ayudando mucho.
De nada.
Cita:
Iniciado por abdonroda ¿'{{formset.management_form}}' qué es? ¿qué hace?
Documentación Cita:
Iniciado por abdonroda ¿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 ¿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 ¿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 ¿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 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.