Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

newforms: Changed Form.ignore_errors to Form.is_bound, which is more …

…descriptive and can be helpful to access at runtime

git-svn-id: http://code.djangoproject.com/svn/django/trunk@4286 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 02f690f73838f59cb622031751fd75b82f728b2f 1 parent 61ede43
Adrian Holovaty adrianholovaty authored
Showing with 12 additions and 6 deletions.
  1. +4 −4 django/newforms/forms.py
  2. +8 −2 tests/regressiontests/forms/tests.py
8 django/newforms/forms.py
View
@@ -40,7 +40,7 @@ class BaseForm(StrAndUnicode):
# 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
self.data = data or {}
self.auto_id = auto_id
self.prefix = prefix
@@ -73,7 +73,7 @@ def is_valid(self):
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):
"""
@@ -137,7 +137,7 @@ def full_clean(self):
Cleans all of self.data 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
return
self.clean_data = {}
@@ -217,7 +217,7 @@ def as_widget(self, widget, attrs=None):
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
else:
data = self.data
10 tests/regressiontests/forms/tests.py
View
@@ -1502,6 +1502,8 @@
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
+True
>>> p.errors
{}
>>> p.is_valid()
@@ -1540,6 +1542,8 @@
Empty dictionaries are valid, too.
>>> p = Person({})
+>>> p.is_bound
+True
>>> 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()
@@ -1569,9 +1573,11 @@
<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
+False
>>> p.errors
{}
>>> p.is_valid()
Please sign in to comment.
Something went wrong with that request. Please try again.