Estoy creando un formulario en una página, luego en otra página estoy tratando de sacar el formulario (rellenado con los datos guardados en él) y me gustaría hacer cambios en él para que cuando Lo guardo, sobrescribe la instancia en lugar de crear otra.Formulario de actualización Django
def edit(request):
a = request.session.get('a', None)
form = Name_Form(request.POST, instance=a)
if form.is_valid():
j = form.save(commit=False)
j.save()
Parece que funciona pero no completa la forma. En su lugar, se inicia con un formulario en blanco que ya ha sido "presentado" en blanco (ver todos los errores que le dice acerca de los campos obligatorios)
También he intentado usar
form = Name_Form(initial={'id':a.id})
a rellenar previamente el formulario. Pero si hago esto en lugar de la línea form = Name_Form(request.POST, instance=a)
, no sobrescribirá la instancia, sino que creará una nueva.
Parece que no puedo combinar ambas funciones.
Cualquier ayuda se agradece
En serio. Gracias. No tienes idea de cuánta frustración me ha traído tratar de resolver esto. – JohnnyCash
No estoy seguro de si nunca funcionó, o si por alguna razón ya no funciona , ¡pero ya no sobrescribe la instancia! ¡Está creando una nueva, o si ya existe, devuelve un error! :(¿Ideas? – JohnnyCash