[1.7.x] Fixed #21792 -- Documented Form.has_changed()

Thanks bjb at credil.org for the suggestion and
Ivan Mesic for the draft patch.

Backport of edcc75e5ac from master
This commit is contained in:
Tim Graham 2014-08-05 08:40:27 -04:00
parent 9ed92906b3
commit 5e42e9f059
1 changed files with 25 additions and 0 deletions

View File

@ -245,6 +245,31 @@ precedence::
<tr><th>Url:</th><td><input type="url" name="url" /></td></tr>
<tr><th>Comment:</th><td><input type="text" name="comment" /></td></tr>
Checking if form data has changed
---------------------------------
.. method:: Form.has_changed()
Use the ``has_changed()`` method on your ``Form`` when you need to check if the
form data has been changed from the initial data.
>>> data = {'subject': 'hello',
... 'message': 'Hi there',
... 'sender': 'foo@example.com',
... 'cc_myself': True}
>>> f = ContactForm(initial=data)
>>> f.has_changed()
False
When the form is submitted, we reconstruct it and provide the original data
so that the comparison can be done:
>>> f = ContactForm(request.POST, initial=data)
>>> f.has_changed()
``has_changed()`` will be ``True`` if the data from ``request.POST`` differs
from what was provided in :attr:`~Form.initial` or ``False`` otherwise.
Accessing the fields from the form
----------------------------------