Revised the text in the 'Processing the data from a form' section.

This commit is contained in:
Audrey Roy 2012-06-07 21:07:43 +02:00 committed by Aymeric Augustin
parent 3c05b500a5
commit 7ab6e32843
1 changed files with 21 additions and 13 deletions

View File

@ -131,25 +131,31 @@ The distinction between :ref:`ref-forms-api-bound-unbound` is important:
Handling file uploads with a form Handling file uploads with a form
--------------------------------- ---------------------------------
To see how to handle file uploads with your form see To see how to handle file uploads with your form, see
:ref:`binding-uploaded-files` for more information. :ref:`binding-uploaded-files`.
Processing the data from a form Processing the data from a form
------------------------------- -------------------------------
Once ``is_valid()`` returns ``True``, you can process the form submission safe Once ``is_valid()`` returns ``True``, the successfully validated form data
in the knowledge that it conforms to the validation rules defined by your form. will be in the ``form.cleaned_data`` dictionary. This data will have been
While you could access ``request.POST`` directly at this point, it is better to converted nicely into Python types for you.
access ``form.cleaned_data``. This data has not only been validated but will
also be converted in to the relevant Python types for you. In the above example, .. note::
``cc_myself`` will be a boolean value. Likewise, fields such as ``IntegerField``
and ``FloatField`` convert values to a Python int and float respectively. Note You can still access the unvalidated data directly from ``request.POST`` at
that read-only fields are not available in ``form.cleaned_data`` (and setting this point, but the validated data is better.
a value in a custom ``clean()`` method won't have any effect) because these
In the above example, ``cc_myself`` will be a boolean value. Likewise, fields
such as ``IntegerField`` and ``FloatField`` convert values to a Python int and
float respectively.
Read-only fields are not available in ``form.cleaned_data`` (and setting
a value in a custom ``clean()`` method won't have any effect). These
fields are displayed as text rather than as input elements, and thus are not fields are displayed as text rather than as input elements, and thus are not
posted back to the server. posted back to the server.
Extending the above example, here's how the form data could be processed: Extending the earlier example, here's how the form data could be processed:
.. code-block:: python .. code-block:: python
@ -167,7 +173,9 @@ Extending the above example, here's how the form data could be processed:
send_mail(subject, message, sender, recipients) send_mail(subject, message, sender, recipients)
return HttpResponseRedirect('/thanks/') # Redirect after POST return HttpResponseRedirect('/thanks/') # Redirect after POST
For more on sending email from Django, see :doc:`/topics/email`. .. tip::
For more on sending email from Django, see :doc:`/topics/email`.
Displaying a form using a template Displaying a form using a template
---------------------------------- ----------------------------------