2010-10-19 6 views

Odpowiedz

32
model_instance = form.save(commit=False) 

zwróci państwu obiekt modelu bez zapisywania do DB

można następnie dodać wartość jakiegoś pola, które nie są dostępne w postaci

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

I Właśnie znalazłem to gdzieś i byłem już w drodze, by samemu dodać odpowiedź. :) –

+3

Jeśli użyjesz 'form.save (commit = False)', django nie zapisze relacji ManyToMany. Musisz wywołać 'form.save_m2m()' po zapisaniu instancji samemu. [Django ModelForms # Save] (https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#the-save-method) –

+3

Dzięki. To, co zdezorientowało mnie, to fakt, że chciałem odnieść się do form.instance, ale jest ono dostępne tylko po wywołaniu save(). – trojjer

3

też:

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

Od 2016 roku jest to najlepsza praktyka? –

Powiązane problemy