Revised the text in the 'Processing the data from a form' section.
This commit is contained in:
parent
3c05b500a5
commit
7ab6e32843
|
@ -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
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
|
Loading…
Reference in New Issue