我发现 Django 中的 ModelForm 非常易于使用,它节省了大量的开发时间。
但是,当我意识到 is_valid 实际上保存了 ModelForm 时,我被卡住了!我想知道这是否是预期的行为,还是我做错了什么?
发生在我身上的是
form=SOME_MODEL_FORM(...., instance=cafe)
print cafe.name # "CAFE OLD NAME"
if request.method="POST":
if form.is_valid():
### HERE the cafe instance has been changed
print cafe.name # "CAFE NEW NAME"
我使用 post_save 调试,is_valid 确实保存了模型!
我目前的解决方法是在调用 is_valid 之前将模型保存在另一个对象中,然后保存回来以覆盖 chang。这真的是黑客行为,我希望有一种更优雅的方式来实现相同的目标(在 is_valid 调用之后不保存模型)。
谢谢!