【发布时间】:2012-07-27 11:48:37
【问题描述】:
从源代码中,您可以看到 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()。
【问题讨论】:
-
很棒的功能。感谢您的解释。 ;-)
标签: django django-forms