我想询问是否有办法在ModelForm保存方法中访问实例ID。 (需要一个对象才能添加一些额外的数据)。
def save(self, *args, **kwargs):
instance = super(MyForm, self).save(*args, **kwargs)
print instance
return instance
在所有情况下,我都会在保存到数据库之前获取实例(因此它没有id,我无法将对象附加到它上面)
答案 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,可以获得一个对象。您可以使用此对象执行任何操作,但请确保在进行更改后保存它!