2010-10-19 9 views

Respuesta

32
model_instance = form.save(commit=False) 

le devolverá un objeto del modelo sin guardar en la base de datos

a continuación, puede añadir valor de algún campo que no está disponible en forma

model_instance.some_field = value 
model_instance.save() 
+0

I acabo de encontrarlo en algún lado y estaba en camino de agregar la respuesta yo mismo. :) –

+3

Si usa 'form.save (commit = False)', django no guardará muchas relaciones ManyToMany. Debe llamar a 'form.save_m2m()' después de guardar la instancia usted mismo. [Django ModelForms # Save] (https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#the-save-method) –

+3

Gracias. Lo que me confundió fue que quería referirme a form.instance, pero solo está disponible después de invocar save(). – trojjer

3

también:

model_instance = form.instance 
# edit 
model_instance.save() 
+0

A partir de 2016, ¿es esta la mejor práctica para esto? –

Cuestiones relacionadas