django:ModelForm访问新对象的实例

时间:2015-06-22 16:19:29

标签: django django-forms

我想询问是否有办法在ModelForm保存方法中访问实例ID。 (需要一个对象才能添加一些额外的数据)。

def save(self, *args, **kwargs):
    instance = super(MyForm, self).save(*args, **kwargs)
    print instance 
    return instance

在所有情况下,我都会在保存到数据库之前获取实例(因此它没有id,我无法将对象附加到它上面)

1 个答案:

答案 0 :(得分:1)

没有必要覆盖ModelForm save()函数。相反,最好使用commit=False调用save。 The Django docs explain this in depth,但这是一个简单的例子:

new_object = form.save(commit=False)
new_object.name = 'Whatever'
new_object.save()

通过使用commit=False调用save,可以获得一个对象。您可以使用此对象执行任何操作,但请确保在进行更改后保存它!