从源代码中,您可以看到 Django 1.4 的Form
类有一个has_changed()
方法和changed_data
属性,看起来相当有用,但没有记录。我的问题是:按预期进行这些工作,即:
- 在
Form.clean()
,如果任何表单数据发生变化则Form.has_changed()
返回,否则True
False
- 在
Form.clean()
,Form.changed_data
中是值已更改的字段名称列表。
如果是这样,除了关于使用未记录功能的常见警告/危险(即可能会更改、不受支持等)之外,是否有任何不使用它们的具体原因?
注意 1:要使这些与自定义小部件一起使用,这些小部件需要有一个_has_changed()
方法,该方法是为内置小部件定义的。
注 2:有趣的是,文档确实包含了对该方法的临时提及Formset.has_changed()
,但没有提及Form.has_changed()
.