如果我有一个模型表格并保存如下:
f = FormModel(request.POST)
if f.is_valid():
f.save()
如何找回刚刚保存的对象?
答案 0 :(得分:34)
保存模型时,它将返回已保存的模型实例。所以你要做的就是将它分配给一个变量:
f = MyModelForm(request.POST)
if f.is_valid():
m = f.save()
除非处理更复杂的数据,否则您不需要使用commit=False
或任何其他内容。
答案 1 :(得分:12)
如果您知道模型已保存(以便存在正确的实例),您还可以执行以下操作:
model = form.instance
答案 2 :(得分:6)
我刚发现这个啊!
# 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()
答案 3 :(得分:0)
@Fabian,用于编辑以前未包含在模型表单中的实例
例如,您的模型表格涵盖姓名,年龄,性别,但模型中还有一个字段(可能是国家),您想由您自己而非您的用户添加该字段,因此您显示必填字段,然后使用上述步骤进行添加其余的部分 这对上面的问题对我有用
> ./public/version.txt
这会打印新创建的对象的ID,然后我将其保存在另一个模型中