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