Author: bouldersprinters
Date: 2007-05-15 11:03:18 -0500 (Tue, 15 May 2007)
New Revision: 5246

Modified:
   django/branches/boulder-oracle-sprint/django/contrib/formtools/preview.py
   django/branches/boulder-oracle-sprint/django/core/management.py
   django/branches/boulder-oracle-sprint/django/newforms/forms.py
   django/branches/boulder-oracle-sprint/django/newforms/models.py
   django/branches/boulder-oracle-sprint/docs/newforms.txt
   django/branches/boulder-oracle-sprint/extras/django_bash_completion
   django/branches/boulder-oracle-sprint/tests/modeltests/model_forms/models.py
   
django/branches/boulder-oracle-sprint/tests/regressiontests/forms/regressions.py
   django/branches/boulder-oracle-sprint/tests/regressiontests/forms/tests.py
Log:
boulder-oracle-sprint: Merged to [5245]

Modified: 
django/branches/boulder-oracle-sprint/django/contrib/formtools/preview.py
===================================================================
--- django/branches/boulder-oracle-sprint/django/contrib/formtools/preview.py   
2007-05-15 11:39:00 UTC (rev 5245)
+++ django/branches/boulder-oracle-sprint/django/contrib/formtools/preview.py   
2007-05-15 16:03:18 UTC (rev 5246)
@@ -24,7 +24,7 @@
 
 Subclass FormPreview and define a done() method:
 
-    def done(self, request, clean_data):
+    def done(self, request, cleaned_data):
         # ...
 
 This method takes an HttpRequest object and a dictionary of the form data after
@@ -113,7 +113,7 @@
         if f.is_valid():
             if self.security_hash(request, f) != 
request.POST.get(self.unused_name('hash')):
                 return self.failed_hash(request) # Security hash failed.
-            return self.done(request, f.clean_data)
+            return self.done(request, f.cleaned_data)
         else:
             return render_to_response(self.form_template,
                 {'form': f, 'stage_field': self.unused_name('stage'), 'state': 
self.state},
@@ -160,6 +160,9 @@
 
     # METHODS SUBCLASSES MUST OVERRIDE ########################################
 
-    def done(self, request, clean_data):
-        "Does something with the clean_data and returns an 
HttpResponseRedirect."
+    def done(self, request, cleaned_data):
+        """
+        Does something with the cleaned_data and returns an
+        HttpResponseRedirect.
+        """
         raise NotImplementedError('You must define a done() method on your %s 
subclass.' % self.__class__.__name__)

Modified: django/branches/boulder-oracle-sprint/django/core/management.py
===================================================================
--- django/branches/boulder-oracle-sprint/django/core/management.py     
2007-05-15 11:39:00 UTC (rev 5245)
+++ django/branches/boulder-oracle-sprint/django/core/management.py     
2007-05-15 16:03:18 UTC (rev 5246)
@@ -637,7 +637,7 @@
     # Install the 'initialdata' fixture, using format discovery
     load_data(['initial_data'], verbosity=verbosity)
 syncdb.help_doc = "Create the database tables for all apps in INSTALLED_APPS 
whose tables haven't already been created."
-syncdb.args = '[--verbosity] [--interactive]'
+syncdb.args = '[--verbosity] [--noinput]'
 
 def get_admin_index(app):
     "Returns admin-index template snippet (in list form) for the given app."
@@ -731,7 +731,7 @@
     else:
         print "Reset cancelled."
 reset.help_doc = "Executes ``sqlreset`` for the given app(s) in the current 
database."
-reset.args = '[--interactive]' + APP_ARGS
+reset.args = '[--noinput]' + APP_ARGS
 
 def flush(verbosity=1, interactive=True):
     "Returns all tables in the database to the same state they were in 
immediately after syncdb."
@@ -792,7 +792,7 @@
     else:
         print "Flush cancelled."
 flush.help_doc = "Executes ``sqlflush`` on the current database."
-flush.args = '[--verbosity] [--interactive]'
+flush.args = '[--verbosity] [--noinput]'
 
 def _start_helper(app_or_project, name, directory, other_name=''):
     other = {'project': 'app', 'app': 'project'}[app_or_project]
@@ -1511,7 +1511,7 @@
     except Exception, e:
         sys.stderr.write(style.ERROR("Unable to serialize database: %s\n" % e))
 dump_data.help_doc = 'Output the contents of the database as a fixture of the 
given format'
-dump_data.args = '[--format]' + APP_ARGS
+dump_data.args = '[--format] [--indent]' + APP_ARGS
 
 # Utilities for command-line script
 

Modified: django/branches/boulder-oracle-sprint/django/newforms/forms.py
===================================================================
--- django/branches/boulder-oracle-sprint/django/newforms/forms.py      
2007-05-15 11:39:00 UTC (rev 5245)
+++ django/branches/boulder-oracle-sprint/django/newforms/forms.py      
2007-05-15 16:03:18 UTC (rev 5246)
@@ -169,13 +169,13 @@
 
     def full_clean(self):
         """
-        Cleans all of self.data and populates self.__errors and 
self.clean_data.
+        Cleans all of self.data and populates self.__errors and 
self.cleaned_data.
         """
         errors = ErrorDict()
         if not self.is_bound: # Stop further processing.
             self.__errors = errors
             return
-        self.clean_data = {}
+        self.cleaned_data = {}
         for name, field in self.fields.items():
             # value_from_datadict() gets the data from the dictionary.
             # Each widget type knows how to retrieve its own data, because some
@@ -183,18 +183,18 @@
             value = field.widget.value_from_datadict(self.data, 
self.add_prefix(name))
             try:
                 value = field.clean(value)
-                self.clean_data[name] = value
-                if hasattr(self, 'do_clean_%s' % name):
-                    value = getattr(self, 'do_clean_%s' % name)()
-                self.clean_data[name] = value
+                self.cleaned_data[name] = value
+                if hasattr(self, 'clean_%s' % name):
+                    value = getattr(self, 'clean_%s' % name)()
+                self.cleaned_data[name] = value
             except ValidationError, e:
                 errors[name] = e.messages
         try:
-            self.clean_data = self.clean()
+            self.cleaned_data = self.clean()
         except ValidationError, e:
             errors[NON_FIELD_ERRORS] = e.messages
         if errors:
-            delattr(self, 'clean_data')
+            delattr(self, 'cleaned_data')
         self.__errors = errors
 
     def clean(self):
@@ -204,7 +204,7 @@
         not be associated with a particular field; it will have a special-case
         association with the field named '__all__'.
         """
-        return self.clean_data
+        return self.cleaned_data
 
 class Form(BaseForm):
     "A collection of Fields, plus their associated data."

Modified: django/branches/boulder-oracle-sprint/django/newforms/models.py
===================================================================
--- django/branches/boulder-oracle-sprint/django/newforms/models.py     
2007-05-15 11:39:00 UTC (rev 5245)
+++ django/branches/boulder-oracle-sprint/django/newforms/models.py     
2007-05-15 16:03:18 UTC (rev 5246)
@@ -14,7 +14,7 @@
 
 def save_instance(form, instance, fields=None, fail_message='saved', 
commit=True):
     """
-    Saves bound Form ``form``'s clean_data into model instance ``instance``.
+    Saves bound Form ``form``'s cleaned_data into model instance ``instance``.
 
     Assumes ``form`` has a field for every non-AutoField database field in
     ``instance``. If commit=True, then the changes to ``instance`` will be
@@ -24,20 +24,20 @@
     opts = instance.__class__._meta
     if form.errors:
         raise ValueError("The %s could not be %s because the data didn't 
validate." % (opts.object_name, fail_message))
-    clean_data = form.clean_data
+    cleaned_data = form.cleaned_data
     for f in opts.fields:
-        if not f.editable or isinstance(f, models.AutoField) or not f.name in 
clean_data:
+        if not f.editable or isinstance(f, models.AutoField) or not f.name in 
cleaned_data:
             continue
         if fields and f.name not in fields:
             continue
-        setattr(instance, f.name, clean_data[f.name])
+        setattr(instance, f.name, cleaned_data[f.name])
     if commit:
         instance.save()
         for f in opts.many_to_many:
             if fields and f.name not in fields:
                 continue
-            if f.name in clean_data:
-                setattr(instance, f.attname, clean_data[f.name])
+            if f.name in cleaned_data:
+                setattr(instance, f.attname, cleaned_data[f.name])
     # GOTCHA: If many-to-many data is given and commit=False, the many-to-many
     # data will be lost. This happens because a many-to-many options cannot be
     # set on an object until after it's saved. Maybe we should raise an

Modified: django/branches/boulder-oracle-sprint/docs/newforms.txt
===================================================================
--- django/branches/boulder-oracle-sprint/docs/newforms.txt     2007-05-15 
11:39:00 UTC (rev 5245)
+++ django/branches/boulder-oracle-sprint/docs/newforms.txt     2007-05-15 
16:03:18 UTC (rev 5246)
@@ -230,7 +230,7 @@
 it's valid.
 
 Once you've created a ``Form`` instance with a set of data and validated it,
-you can access the clean data via the ``clean_data`` attribute of the ``Form``
+you can access the clean data via the ``cleaned_data`` attribute of the 
``Form``
 object::
 
     >>> data = {'subject': 'hello',
@@ -240,7 +240,7 @@
     >>> f = ContactForm(data)
     >>> f.is_valid()
     True
-    >>> f.clean_data
+    >>> f.cleaned_data
     {'cc_myself': True, 'message': u'Hi there', 'sender': u'[EMAIL 
PROTECTED]', 'subject': u'hello'}
 
 Note that any text-based field -- such as ``CharField`` or ``EmailField`` --
@@ -248,7 +248,7 @@
 implications later in this document.
 
 If your data does *not* validate, your ``Form`` instance will not have a
-``clean_data`` attribute::
+``cleaned_data`` attribute::
 
     >>> data = {'subject': '',
     ...         'message': 'Hi there',
@@ -257,15 +257,15 @@
     >>> f = ContactForm(data)
     >>> f.is_valid()
     False
-    >>> f.clean_data
+    >>> f.cleaned_data
     Traceback (most recent call last):
     ...
-    AttributeError: 'ContactForm' object has no attribute 'clean_data'
+    AttributeError: 'ContactForm' object has no attribute 'cleaned_data'
 
-``clean_data`` will always *only* contain a key for fields defined in the
+``cleaned_data`` will always *only* contain a key for fields defined in the
 ``Form``, even if you pass extra data when you define the ``Form``. In this
 example, we pass a bunch of extra fields to the ``ContactForm`` constructor,
-but ``clean_data`` contains only the form's fields::
+but ``cleaned_data`` contains only the form's fields::
 
     >>> data = {'subject': 'hello',
     ...         'message': 'Hi there',
@@ -277,13 +277,13 @@
     >>> f = ContactForm(data)
     >>> f.is_valid()
     True
-    >>> f.clean_data # Doesn't contain extra_field_1, etc.
+    >>> f.cleaned_data # Doesn't contain extra_field_1, etc.
     {'cc_myself': True, 'message': u'Hi there', 'sender': u'[EMAIL 
PROTECTED]', 'subject': u'hello'}
 
-``clean_data`` will include a key and value for *all* fields defined in the
+``cleaned_data`` will include a key and value for *all* fields defined in the
 ``Form``, even if the data didn't include a value for fields that are not
 required. In this example, the data dictionary doesn't include a value for the
-``nick_name`` field, but ``clean_data`` includes it, with an empty value::
+``nick_name`` field, but ``cleaned_data`` includes it, with an empty value::
 
     >>> class OptionalPersonForm(Form):
     ...     first_name = CharField()
@@ -293,10 +293,10 @@
     >>> f = OptionalPersonForm(data)
     >>> f.is_valid()
     True
-    >>> f.clean_data
+    >>> f.cleaned_data
     {'nick_name': u'', 'first_name': u'John', 'last_name': u'Lennon'}
 
-In this above example, the ``clean_data`` value for ``nick_name`` is set to an
+In this above example, the ``cleaned_data`` value for ``nick_name`` is set to 
an
 empty string, because ``nick_name`` is ``CharField``, and ``CharField``\s treat
 empty values as an empty string. Each field type knows what its "blank" value
 is -- e.g., for ``DateField``, it's ``None`` instead of the empty string.
@@ -308,10 +308,10 @@
 record, here's what happens with unbound forms::
 
     >>> f = ContactForm()
-    >>> f.clean_data
+    >>> f.cleaned_data
     Traceback (most recent call last):
     ...
-    AttributeError: 'ContactForm' object has no attribute 'clean_data'
+    AttributeError: 'ContactForm' object has no attribute 'cleaned_data'
 
 Outputting forms as HTML
 ------------------------

Modified: django/branches/boulder-oracle-sprint/extras/django_bash_completion
===================================================================
--- django/branches/boulder-oracle-sprint/extras/django_bash_completion 
2007-05-15 11:39:00 UTC (rev 5245)
+++ django/branches/boulder-oracle-sprint/extras/django_bash_completion 
2007-05-15 16:03:18 UTC (rev 5246)
@@ -42,13 +42,13 @@
     prev="${COMP_WORDS[COMP_CWORD-1]}"
 
     # Standalone options
-    opts="--help --settings --pythonpath --version"
+    opts="--help --settings --pythonpath --noinput --noreload --format 
--indent --verbosity --adminmedia --version"
     # Actions
     actions="adminindex createcachetable dbshell diffsettings \
-             inspectdb install reset runfcgi runserver \
-             shell sql sqlall sqlclear sqlindexes sqlinitialdata \
+             dumpdata flush inspectdb loaddata reset runfcgi runserver \
+             shell sql sqlall sqlclear sqlcustom sqlflush sqlindexes \
              sqlreset sqlsequencereset startapp startproject \
-             syncdb validate"
+             syncdb test validate"
     # Action's options
     action_shell_opts="--plain"
     action_runfcgi_opts="host port socket method maxspare minspare maxchildren 
daemonize pidfile workdir"
@@ -84,33 +84,33 @@
         esac
     else
         case ${prev} in
-            adminindex|install|reset| \
-            sql|sqlall|sqlclear|sqlindexes| \
-            sqlinitialdata|sqlreset|sqlsequencereset)
-            # App completion
-            settings=""
-            # If settings.py in the PWD, use that
-            if [ -e settings.py ] ; then
-                settings="$PWD/settings.py"
-            else
-                # Use the ENV variable if it is set
-                if [ $DJANGO_SETTINGS_MODULE ] ; then
-                    settings=$DJANGO_SETTINGS_MODULE
+            adminindex|dumpdata|reset| \
+            sql|sqlall|sqlclear|sqlcustom|sqlindexes| \
+            sqlreset|sqlsequencereset|test)
+                # App completion
+                settings=""
+                # If settings.py in the PWD, use that
+                if [ -e settings.py ] ; then
+                    settings="$PWD/settings.py"
+                else
+                    # Use the ENV variable if it is set
+                    if [ $DJANGO_SETTINGS_MODULE ] ; then
+                        settings=$DJANGO_SETTINGS_MODULE
+                    fi
                 fi
-            fi
-            # Couldn't find settings so return nothing
-            if [ -z $settings ] ; then
-                COMPREPLY=()
-            # Otherwise inspect settings.py file
-            else
-                apps=`sed -n "/INSTALLED_APPS = (/,/)/p" $settings | \
-                      grep -v "django.contrib" | 
-                      sed -n "s/^[ ]*'\(.*\.\)*\(.*\)'.*$/\2 /pg" | \
-                      tr -d "\n"`
-                COMPREPLY=( $(compgen -W "${apps}" -- ${cur}) )
-            fi
-            return 0
-            ;;
+                # Couldn't find settings so return nothing
+                if [ -z $settings ] ; then
+                    COMPREPLY=()
+                # Otherwise inspect settings.py file
+                else
+                    apps=`sed -n "/INSTALLED_APPS = (/,/)/p" $settings | \
+                          grep -v "django.contrib" | 
+                          sed -n "s/^[ ]*'\(.*\.\)*\(.*\)'.*$/\2 /pg" | \
+                          tr -d "\n"`
+                    COMPREPLY=( $(compgen -W "${apps}" -- ${cur}) )
+                fi
+                return 0
+                ;;
 
             createcachetable|dbshell|diffsettings| \
             inspectdb|runserver|startapp|startproject|syncdb| \

Modified: 
django/branches/boulder-oracle-sprint/tests/modeltests/model_forms/models.py
===================================================================
--- 
django/branches/boulder-oracle-sprint/tests/modeltests/model_forms/models.py    
    2007-05-15 11:39:00 UTC (rev 5245)
+++ 
django/branches/boulder-oracle-sprint/tests/modeltests/model_forms/models.py    
    2007-05-15 16:03:18 UTC (rev 5246)
@@ -18,7 +18,7 @@
 method updates the model instance. It also takes a commit=True parameter.
 
 The function django.newforms.save_instance() takes a bound form instance and a
-model instance and saves the form's clean_data into the instance. It also takes
+model instance and saves the form's cleaned_data into the instance. It also 
takes
 a commit=True parameter.
 """
 
@@ -94,7 +94,7 @@
 >>> f = CategoryForm({'name': 'Entertainment', 'url': 'entertainment'})
 >>> f.is_valid()
 True
->>> f.clean_data
+>>> f.cleaned_data
 {'url': u'entertainment', 'name': u'Entertainment'}
 >>> obj = f.save()
 >>> obj
@@ -105,7 +105,7 @@
 >>> f = CategoryForm({'name': "It's a test", 'url': 'test'})
 >>> f.is_valid()
 True
->>> f.clean_data
+>>> f.cleaned_data
 {'url': u'test', 'name': u"It's a test"}
 >>> obj = f.save()
 >>> obj
@@ -119,7 +119,7 @@
 >>> f = CategoryForm({'name': 'Third test', 'url': 'third'})
 >>> f.is_valid()
 True
->>> f.clean_data
+>>> f.cleaned_data
 {'url': u'third', 'name': u'Third test'}
 >>> obj = f.save(commit=False)
 >>> obj
@@ -134,10 +134,10 @@
 >>> f = CategoryForm({'name': '', 'url': 'foo'})
 >>> f.errors
 {'name': [u'This field is required.']}
->>> f.clean_data
+>>> f.cleaned_data
 Traceback (most recent call last):
 ...
-AttributeError: 'CategoryForm' object has no attribute 'clean_data'
+AttributeError: 'CategoryForm' object has no attribute 'cleaned_data'
 >>> f.save()
 Traceback (most recent call last):
 ...
@@ -524,6 +524,6 @@
 >>> f = PhoneNumberForm({'phone': '(312) 555-1212', 'description': 
 >>> 'Assistance'})
 >>> f.is_valid()
 True
->>> f.clean_data
+>>> f.cleaned_data
 {'phone': u'312-555-1212', 'description': u'Assistance'}
 """}

Modified: 
django/branches/boulder-oracle-sprint/tests/regressiontests/forms/regressions.py
===================================================================
--- 
django/branches/boulder-oracle-sprint/tests/regressiontests/forms/regressions.py
    2007-05-15 11:39:00 UTC (rev 5245)
+++ 
django/branches/boulder-oracle-sprint/tests/regressiontests/forms/regressions.py
    2007-05-15 16:03:18 UTC (rev 5246)
@@ -46,6 +46,6 @@
 >>> f = DataForm({'data': 'xyzzy'})
 >>> f.is_valid()
 True
->>> f.clean_data
+>>> f.cleaned_data
 {'data': u'xyzzy'}
 """

Modified: 
django/branches/boulder-oracle-sprint/tests/regressiontests/forms/tests.py
===================================================================
--- django/branches/boulder-oracle-sprint/tests/regressiontests/forms/tests.py  
2007-05-15 11:39:00 UTC (rev 5245)
+++ django/branches/boulder-oracle-sprint/tests/regressiontests/forms/tests.py  
2007-05-15 16:03:18 UTC (rev 5246)
@@ -1774,7 +1774,7 @@
 u''
 >>> p.errors.as_text()
 u''
->>> p.clean_data
+>>> p.cleaned_data
 {'first_name': u'John', 'last_name': u'Lennon', 'birthday': 
datetime.date(1940, 10, 9)}
 >>> print p['first_name']
 <input type="text" name="first_name" value="John" id="id_first_name" />
@@ -1810,10 +1810,10 @@
 {'first_name': [u'This field is required.'], 'last_name': [u'This field is 
required.'], 'birthday': [u'This field is required.']}
 >>> p.is_valid()
 False
->>> p.clean_data
+>>> p.cleaned_data
 Traceback (most recent call last):
 ...
-AttributeError: 'Person' object has no attribute 'clean_data'
+AttributeError: 'Person' object has no attribute 'cleaned_data'
 >>> print p
 <tr><th><label for="id_first_name">First name:</label></th><td><ul 
class="errorlist"><li>This field is required.</li></ul><input type="text" 
name="first_name" id="id_first_name" /></td></tr>
 <tr><th><label for="id_last_name">Last name:</label></th><td><ul 
class="errorlist"><li>This field is required.</li></ul><input type="text" 
name="last_name" id="id_last_name" /></td></tr>
@@ -1844,10 +1844,10 @@
 {}
 >>> p.is_valid()
 False
->>> p.clean_data
+>>> p.cleaned_data
 Traceback (most recent call last):
 ...
-AttributeError: 'Person' object has no attribute 'clean_data'
+AttributeError: 'Person' object has no attribute 'cleaned_data'
 >>> print p
 <tr><th><label for="id_first_name">First name:</label></th><td><input 
type="text" name="first_name" id="id_first_name" /></td></tr>
 <tr><th><label for="id_last_name">Last name:</label></th><td><input 
type="text" name="last_name" id="id_last_name" /></td></tr>
@@ -1886,10 +1886,10 @@
   * This field is required.
 * birthday
   * This field is required.
->>> p.clean_data
+>>> p.cleaned_data
 Traceback (most recent call last):
 ...
-AttributeError: 'Person' object has no attribute 'clean_data'
+AttributeError: 'Person' object has no attribute 'cleaned_data'
 >>> p['first_name'].errors
 [u'This field is required.']
 >>> p['first_name'].errors.as_ul()
@@ -1905,21 +1905,21 @@
 >>> print p['birthday']
 <input type="text" name="birthday" id="id_birthday" />
 
-clean_data will always *only* contain a key for fields defined in the
+cleaned_data will always *only* contain a key for fields defined in the
 Form, even if you pass extra data when you define the Form. In this
 example, we pass a bunch of extra fields to the form constructor,
-but clean_data contains only the form's fields.
+but cleaned_data contains only the form's fields.
 >>> data = {'first_name': u'John', 'last_name': u'Lennon', 'birthday': 
 >>> u'1940-10-9', 'extra1': 'hello', 'extra2': 'hello'}
 >>> p = Person(data)
 >>> p.is_valid()
 True
->>> p.clean_data
+>>> p.cleaned_data
 {'first_name': u'John', 'last_name': u'Lennon', 'birthday': 
datetime.date(1940, 10, 9)}
 
-clean_data will include a key and value for *all* fields defined in the Form,
+cleaned_data will include a key and value for *all* fields defined in the Form,
 even if the Form's data didn't include a value for fields that are not
 required. In this example, the data dictionary doesn't include a value for the
-"nick_name" field, but clean_data includes it. For CharFields, it's set to the
+"nick_name" field, but cleaned_data includes it. For CharFields, it's set to 
the
 empty string.
 >>> class OptionalPersonForm(Form):
 ...     first_name = CharField()
@@ -1929,7 +1929,7 @@
 >>> f = OptionalPersonForm(data)
 >>> f.is_valid()
 True
->>> f.clean_data
+>>> f.cleaned_data
 {'nick_name': u'', 'first_name': u'John', 'last_name': u'Lennon'}
 
 For DateFields, it's set to None.
@@ -1941,7 +1941,7 @@
 >>> f = OptionalPersonForm(data)
 >>> f.is_valid()
 True
->>> f.clean_data
+>>> f.cleaned_data
 {'birth_date': None, 'first_name': u'John', 'last_name': u'Lennon'}
 
 "auto_id" tells the Form to add an "id" attribute to each form element.
@@ -2292,19 +2292,19 @@
 >>> f = SongForm({'name': 'Yesterday', 'composers': ['J']}, auto_id=False)
 >>> f.errors
 {}
->>> f.clean_data
+>>> f.cleaned_data
 {'composers': [u'J'], 'name': u'Yesterday'}
 >>> f = SongForm({'name': 'Yesterday', 'composers': ['J', 'P']}, auto_id=False)
 >>> f.errors
 {}
->>> f.clean_data
+>>> f.cleaned_data
 {'composers': [u'J', u'P'], 'name': u'Yesterday'}
 
 Validation errors are HTML-escaped when output as HTML.
 >>> class EscapingForm(Form):
 ...     special_name = CharField()
-...     def do_clean_special_name(self):
-...         raise ValidationError("Something's wrong with '%s'" % 
self.clean_data['special_name'])
+...     def clean_special_name(self):
+...         raise ValidationError("Something's wrong with '%s'" % 
self.cleaned_data['special_name'])
 
 >>> f = EscapingForm({'special_name': "Nothing to escape"}, auto_id=False)
 >>> print f
@@ -2319,17 +2319,17 @@
 validation message to be associated with a particular field, implement the
 clean_XXX() method on the Form, where XXX is the field name. As in
 Field.clean(), the clean_XXX() method should return the cleaned value. In the
-clean_XXX() method, you have access to self.clean_data, which is a dictionary
+clean_XXX() method, you have access to self.cleaned_data, which is a dictionary
 of all the data that has been cleaned *so far*, in order by the fields,
 including the current field (e.g., the field XXX if you're in clean_XXX()).
 >>> class UserRegistration(Form):
 ...    username = CharField(max_length=10)
 ...    password1 = CharField(widget=PasswordInput)
 ...    password2 = CharField(widget=PasswordInput)
-...    def do_clean_password2(self):
-...        if self.clean_data.get('password1') and 
self.clean_data.get('password2') and self.clean_data['password1'] != 
self.clean_data['password2']:
+...    def clean_password2(self):
+...        if self.cleaned_data.get('password1') and 
self.cleaned_data.get('password2') and self.cleaned_data['password1'] != 
self.cleaned_data['password2']:
 ...            raise ValidationError(u'Please make sure your passwords match.')
-...        return self.clean_data['password2']
+...        return self.cleaned_data['password2']
 >>> f = UserRegistration(auto_id=False)
 >>> f.errors
 {}
@@ -2342,14 +2342,14 @@
 >>> f = UserRegistration({'username': 'adrian', 'password1': 'foo', 
 >>> 'password2': 'foo'}, auto_id=False)
 >>> f.errors
 {}
->>> f.clean_data
+>>> f.cleaned_data
 {'username': u'adrian', 'password1': u'foo', 'password2': u'foo'}
 
 Another way of doing multiple-field validation is by implementing the
 Form's clean() method. If you do this, any ValidationError raised by that
 method will not be associated with a particular field; it will have a
 special-case association with the field named '__all__'.
-Note that in Form.clean(), you have access to self.clean_data, a dictionary of
+Note that in Form.clean(), you have access to self.cleaned_data, a dictionary 
of
 all the fields/values that have *not* raised a ValidationError. Also note
 Form.clean() is required to return a dictionary of all clean data.
 >>> class UserRegistration(Form):
@@ -2357,9 +2357,9 @@
 ...    password1 = CharField(widget=PasswordInput)
 ...    password2 = CharField(widget=PasswordInput)
 ...    def clean(self):
-...        if self.clean_data.get('password1') and 
self.clean_data.get('password2') and self.clean_data['password1'] != 
self.clean_data['password2']:
+...        if self.cleaned_data.get('password1') and 
self.cleaned_data.get('password2') and self.cleaned_data['password1'] != 
self.cleaned_data['password2']:
 ...            raise ValidationError(u'Please make sure your passwords match.')
-...        return self.clean_data
+...        return self.cleaned_data
 >>> f = UserRegistration(auto_id=False)
 >>> f.errors
 {}
@@ -2386,7 +2386,7 @@
 >>> f = UserRegistration({'username': 'adrian', 'password1': 'foo', 
 >>> 'password2': 'foo'}, auto_id=False)
 >>> f.errors
 {}
->>> f.clean_data
+>>> f.cleaned_data
 {'username': u'adrian', 'password1': u'foo', 'password2': u'foo'}
 
 # Dynamic construction ########################################################
@@ -2954,7 +2954,7 @@
 {}
 >>> p.is_valid()
 True
->>> p.clean_data
+>>> p.cleaned_data
 {'first_name': u'John', 'last_name': u'Lennon', 'birthday': 
datetime.date(1940, 10, 9)}
 
 Let's try submitting some bad data to make sure form.errors and field.errors
@@ -2998,12 +2998,12 @@
 >>> p1 = Person(data, prefix='person1')
 >>> p1.is_valid()
 True
->>> p1.clean_data
+>>> p1.cleaned_data
 {'first_name': u'John', 'last_name': u'Lennon', 'birthday': 
datetime.date(1940, 10, 9)}
 >>> p2 = Person(data, prefix='person2')
 >>> p2.is_valid()
 True
->>> p2.clean_data
+>>> p2.cleaned_data
 {'first_name': u'Jim', 'last_name': u'Morrison', 'birthday': 
datetime.date(1943, 12, 8)}
 
 By default, forms append a hyphen between the prefix and the field name, but a
@@ -3029,7 +3029,7 @@
 >>> p = Person(data, prefix='foo')
 >>> p.is_valid()
 True
->>> p.clean_data
+>>> p.cleaned_data
 {'first_name': u'John', 'last_name': u'Lennon', 'birthday': 
datetime.date(1940, 10, 9)}
 
 # Forms with NullBooleanFields ################################################
@@ -3091,16 +3091,16 @@
 ...    password1 = CharField(widget=PasswordInput)
 ...    password2 = CharField(widget=PasswordInput)
 ...    def clean(self):
-...        if self.clean_data.get('password1') and 
self.clean_data.get('password2') and self.clean_data['password1'] != 
self.clean_data['password2']:
+...        if self.cleaned_data.get('password1') and 
self.cleaned_data.get('password2') and self.cleaned_data['password1'] != 
self.cleaned_data['password2']:
 ...            raise ValidationError(u'Please make sure your passwords match.')
-...        return self.clean_data
+...        return self.cleaned_data
 >>> def my_function(method, post_data):
 ...     if method == 'POST':
 ...         form = UserRegistration(post_data, auto_id=False)
 ...     else:
 ...         form = UserRegistration(auto_id=False)
 ...     if form.is_valid():
-...         return 'VALID: %r' % form.clean_data
+...         return 'VALID: %r' % form.cleaned_data
 ...     t = Template('<form action="" method="post">\n<table>\n{{ form 
}}\n</table>\n<input type="submit" />\n</form>')
 ...     return t.render(Context({'form': form}))
 
@@ -3138,9 +3138,9 @@
 ...    password1 = CharField(widget=PasswordInput)
 ...    password2 = CharField(widget=PasswordInput)
 ...    def clean(self):
-...        if self.clean_data.get('password1') and 
self.clean_data.get('password2') and self.clean_data['password1'] != 
self.clean_data['password2']:
+...        if self.cleaned_data.get('password1') and 
self.cleaned_data.get('password2') and self.cleaned_data['password1'] != 
self.cleaned_data['password2']:
 ...            raise ValidationError(u'Please make sure your passwords match.')
-...        return self.clean_data
+...        return self.cleaned_data
 
 You have full flexibility in displaying form fields in a template. Just pass a
 Form instance to the template, and use "dot" access to refer to individual
@@ -3490,7 +3490,7 @@
 </select>
 <input type="text" name="field1_2_0" value="2007-04-25" id="id_field1_2_0" 
/><input type="text" name="field1_2_1" value="06:24:00" id="id_field1_2_1" 
/></td></tr>
 
->>> f.clean_data
+>>> f.cleaned_data
 {'field1': u'some text,JP,2007-04-25 06:24:00'}
 
 #################################


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected]
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