summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Holovaty <adrian@holovaty.com>2007-01-05 00:04:38 +0000
committerAdrian Holovaty <adrian@holovaty.com>2007-01-05 00:04:38 +0000
commit02f690f73838f59cb622031751fd75b82f728b2f (patch)
treed67564b3daed4317bc57cd060288534dfc50a9e9
parent61ede43202aef10306dc70fa300f269bd3f4fe7f (diff)
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
-rw-r--r--django/newforms/forms.py8
-rw-r--r--tests/regressiontests/forms/tests.py10
2 files changed, 12 insertions, 6 deletions
diff --git a/django/newforms/forms.py b/django/newforms/forms.py
index f47700f857..d540ec8a2e 100644
--- a/django/newforms/forms.py
+++ b/django/newforms/forms.py
@@ -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 @@ class BaseForm(StrAndUnicode):
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 @@ class BaseForm(StrAndUnicode):
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 @@ class BoundField(StrAndUnicode):
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
diff --git a/tests/regressiontests/forms/tests.py b/tests/regressiontests/forms/tests.py
index 6e2f898645..59519c90be 100644
--- a/tests/regressiontests/forms/tests.py
+++ b/tests/regressiontests/forms/tests.py
@@ -1502,6 +1502,8 @@ You can pass it data in __init__(), as a dictionary.
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 @@ Birthday 1940-10-9
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 @@ AttributeError: 'birthday' object has no attribute 'clean_data'
<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()