2010-10-19 19 views

Répondre

32
model_instance = form.save(commit=False) 

va vous retourner un objet du modèle sans enregistrer la DB

vous pouvez ajouter de la valeur de certains champs qui ne sont pas disponibles sur le formulaire

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

I Je l'ai trouvé quelque part et j'étais sur le point d'ajouter la réponse moi-même. :) –

+3

Si vous utilisez 'form.save (commit = False)', django n'enregistrera pas les relations ManyToMany. Vous devez appeler 'form.save_m2m()' après avoir sauvegardé l'instance vous-même. [Django ModelForms # Save] (https://docs.djangoproject.com/fr/dev/topics/forms/modelforms/#the-save-method) –

+3

Merci. Ce qui m'a troublé, c'est que je voulais me référer à form.instance, mais c'est seulement disponible après que save() soit invoqué. – trojjer

3

aussi:

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

À partir de 2016 est-ce la meilleure pratique pour cela? –