urls tutorial template examples english python django django-views

python - template - django tutorial



Django-Problema que tiene dos formas diferentes dentro de una vista y funciones de llamada (1)

Tengo dos formas diferentes que quiero mostrar en una vista. Cuando tenga algo como lo siguiente, se ejecutará el formulario y la información se actualizará con éxito ...

form1 = Form1(request.POST, request.FILES, instance=profile) form2 = Form2(request.POST, instance=list) if form1.is_valid(): form1.save() return redirect(''/dashboard/'') else: return render(request, ''detail-edit.html'', {''form1'':form1,''form2'':form2})

Sin embargo, cuando cambio la instrucción if para incluir la segunda forma:

if form1.is_valid() and form2.is_valid(): form1.save() and form2.save() return redirect(''/dashboard/'')

entonces esto no actualiza la información de los modelos.

¿Es posible llamar a is_valid () / save () con dos formularios al mismo tiempo? Gracias


Model.save no devuelve nada; None El valor Ninguno es falso cuando se usa como predicado.

Por lo tanto, form2.save() no se llama debido a un cortocircuito. Ver and , or documentación del operador .

>>> def save_a(): ... print(''a'') ... # return None ... >>> def save_b(): ... print(''b'') ... # return None ... >>> save_a() and save_b() # with `and` a >>> save_a() # without `and` a >>> save_b() b

Necesitas reemplazar la siguiente línea:

form1.save() and form2.save()

con:

form1.save() form2.save()