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()