Author: adrian
Date: 2007-01-04 00:52:50 -0600 (Thu, 04 Jan 2007)
New Revision: 4285

Modified:
  django/trunk/docs/newforms.txt
Log:
Added first part of 'Using forms to validate data' section to docs/newforms.txt

Modified: django/trunk/docs/newforms.txt
===================================================================
--- django/trunk/docs/newforms.txt      2007-01-04 06:25:53 UTC (rev 4284)
+++ django/trunk/docs/newforms.txt      2007-01-04 06:52:50 UTC (rev 4285)
@@ -74,7 +74,9 @@

The library is decoupled from the other Django components, such as the database
layer, views and templates. It relies only on Django settings, a couple of
-``django.utils`` helper functions and Django's internationalization system.
+``django.utils`` helper functions and Django's internationalization hooks (but
+you're not required to be using internationalization features to use this
+library).

Form objects
============
@@ -322,6 +324,50 @@
    >>> print f['message']
    <input type="text" name="message" id="id_message" />

+Using forms to validate data
+----------------------------
+
+In addition to HTML form display, a ``Form`` class is responsible for
+validating data. To validate data, pass it as a dictionary as the first
+parameter to your ``Form`` class' constructor::
+
+    >>> data = {'subject': 'hello',
+    ...         'message': 'Hi there',
+    ...         'sender': '[EMAIL PROTECTED]',
+    ...         'cc_myself': True}
+    >>> f = ContactForm(data)
+
+From then on, the ``Form`` instance is bound to that data. If you want to
+change the data somehow, or validate other data, create another ``Form``
+instance.
+
+Once you have a ``Form`` instance that's bound to data, call the ``is_valid()``
+method to run validation and return a boolean designating whether the data was
+valid::
+
+    >>> f.is_valid()
+    True
+
+Let's try with some invalid data::
+
+    >>> data = {'subject': '',
+    ...         'message': 'Hi there',
+    ...         'sender': 'invalid e-mail address',
+    ...         'cc_myself': True}
+    >>> f = ContactForm(data)
+    >>> f.is_valid()
+    False
+
+Access the ``Form`` attribute ``errors`` to get a dictionary of error messages,
+keyed by the field name::
+
+    >>> f.errors
+    {'sender': [u'Enter a valid e-mail address.'], 'subject': [u'This field is 
required.']}
+
+You can access ``errors`` without having to call ``is_valid()`` first. The
+form's data will be validated the first time either you call ``is_valid()`` or
+access ``errors``.
+
More coming soon
================



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Django 
updates" group.
To post to this group, send email to django-updates@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to