Сохранение формы модели. Получить сохраненный объект
Если у меня есть модель и сохраняю ее как:
f = FormModel(request.POST)
if f.is_valid():
f.save()
Как я могу вернуть обратно тот объект, который только что был сохранен?
Ответ 1
Когда вы сохраняете модельную форму, она возвращает сохраненный экземпляр модели. Итак, все, что вам нужно сделать, это назначить его переменной:
f = MyModelForm(request.POST)
if f.is_valid():
m = f.save()
Вам не нужно возиться с commit=False или любым из этих материалов, если вы не обрабатываете более сложные данные.
Ответ 2
Если вы знаете, что модель сохранена (так что существует соответствующий экземпляр), вы также можете:
model = form.instance
Ответ 3
А я просто нашел это!
# Create a form instance with POST data.
>>> f = AuthorForm(request.POST)
# Create, but don't save the new author instance.
>>> new_author = f.save(commit=False)
# Modify the author in some way.
>>> new_author.some_field = 'some_value'
# Save the new instance.
>>> new_author.save()
# Now, save the many-to-many data for the form.
>>> f.save_m2m()