Подтвердить что ты не робот

Сохранение формы модели. Получить сохраненный объект

Если у меня есть модель и сохраняю ее как:

f = FormModel(request.POST)
if f.is_valid():
    f.save()

Как я могу вернуть обратно тот объект, который только что был сохранен?

4b9b3361

Ответ 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()