Loading docs/topics/forms/index.txt +21 −13 Original line number Diff line number Diff line Loading @@ -131,25 +131,31 @@ The distinction between :ref:`ref-forms-api-bound-unbound` is important: Handling file uploads with a form --------------------------------- To see how to handle file uploads with your form see :ref:`binding-uploaded-files` for more information. To see how to handle file uploads with your form, see :ref:`binding-uploaded-files`. Processing the data from a form ------------------------------- Once ``is_valid()`` returns ``True``, you can process the form submission safe in the knowledge that it conforms to the validation rules defined by your form. While you could access ``request.POST`` directly at this point, it is better to 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, ``cc_myself`` will be a boolean value. Likewise, fields such as ``IntegerField`` and ``FloatField`` convert values to a Python int and float respectively. Note that read-only fields are not available in ``form.cleaned_data`` (and setting a value in a custom ``clean()`` method won't have any effect) because these Once ``is_valid()`` returns ``True``, the successfully validated form data will be in the ``form.cleaned_data`` dictionary. This data will have been converted nicely into Python types for you. .. note:: You can still access the unvalidated data directly from ``request.POST`` at this point, but the validated data is better. 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 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 Loading @@ -167,6 +173,8 @@ Extending the above example, here's how the form data could be processed: send_mail(subject, message, sender, recipients) return HttpResponseRedirect('/thanks/') # Redirect after POST .. tip:: For more on sending email from Django, see :doc:`/topics/email`. Displaying a form using a template Loading Loading
docs/topics/forms/index.txt +21 −13 Original line number Diff line number Diff line Loading @@ -131,25 +131,31 @@ The distinction between :ref:`ref-forms-api-bound-unbound` is important: Handling file uploads with a form --------------------------------- To see how to handle file uploads with your form see :ref:`binding-uploaded-files` for more information. To see how to handle file uploads with your form, see :ref:`binding-uploaded-files`. Processing the data from a form ------------------------------- Once ``is_valid()`` returns ``True``, you can process the form submission safe in the knowledge that it conforms to the validation rules defined by your form. While you could access ``request.POST`` directly at this point, it is better to 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, ``cc_myself`` will be a boolean value. Likewise, fields such as ``IntegerField`` and ``FloatField`` convert values to a Python int and float respectively. Note that read-only fields are not available in ``form.cleaned_data`` (and setting a value in a custom ``clean()`` method won't have any effect) because these Once ``is_valid()`` returns ``True``, the successfully validated form data will be in the ``form.cleaned_data`` dictionary. This data will have been converted nicely into Python types for you. .. note:: You can still access the unvalidated data directly from ``request.POST`` at this point, but the validated data is better. 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 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 Loading @@ -167,6 +173,8 @@ Extending the above example, here's how the form data could be processed: send_mail(subject, message, sender, recipients) return HttpResponseRedirect('/thanks/') # Redirect after POST .. tip:: For more on sending email from Django, see :doc:`/topics/email`. Displaying a form using a template Loading