adr...@bcc190cf-cafb-0310-a4f2-bffc1f526a37  committed 2fea4dc

newforms: Changed Form.ignore_errors to Form.is_bound, which is more descriptive and can be helpful to access at runtime

  • Participants
  • Parent commits 95970ef
  • Branches default

Comments (0)

Files changed (2)

File django/newforms/

     # information. Any improvements to the form API should be made to *this*
     # class, not to the Form class.
     def __init__(self, data=None, auto_id='id_%s', prefix=None):
-        self.ignore_errors = data is None
+        self.is_bound = data is not None = data or {}
         self.auto_id = auto_id
         self.prefix = prefix
         Returns True if the form has no errors. Otherwise, False. If errors are
         being ignored, returns False.
-        return not self.ignore_errors and not bool(self.errors)
+        return self.is_bound and not bool(self.errors)
     def add_prefix(self, field_name):
         Cleans all of and populates self.__errors and self.clean_data.
         errors = ErrorDict()
-        if self.ignore_errors: # Stop further processing.
+        if not self.is_bound: # Stop further processing.
             self.__errors = errors
         self.clean_data = {}
         auto_id = self.auto_id
         if auto_id and not attrs.has_key('id') and not widget.attrs.has_key('id'):
             attrs['id'] = auto_id
-        if self.form.ignore_errors:
+        if not self.form.is_bound:
             data = self.field.initial
             data =

File tests/regressiontests/forms/

 Pass a dictionary to a Form's __init__().
 >>> p = Person({'first_name': u'John', 'last_name': u'Lennon', 'birthday': u'1940-10-9'})
+>>> p.is_bound
 >>> p.errors
 >>> p.is_valid()
 Empty dictionaries are valid, too.
 >>> p = Person({})
+>>> p.is_bound
 >>> p.errors
 {'first_name': [u'This field is required.'], 'last_name': [u'This field is required.'], 'birthday': [u'This field is required.']}
 >>> p.is_valid()
 <p><label for="id_birthday">Birthday:</label> <input type="text" name="birthday" id="id_birthday" /></p>
 If you don't pass any values to the Form's __init__(), or if you pass None,
-the Form won't do any validation. Form.errors will be an empty dictionary *but*
-Form.is_valid() will return False.
+the Form will be considered unbound and won't do any validation. Form.errors
+will be an empty dictionary *but* Form.is_valid() will return False.
 >>> p = Person()
+>>> p.is_bound
 >>> p.errors
 >>> p.is_valid()