diff options
| author | Luke Plant <L.Plant.98@cantab.net> | 2009-09-11 10:47:40 +0000 |
|---|---|---|
| committer | Luke Plant <L.Plant.98@cantab.net> | 2009-09-11 10:47:40 +0000 |
| commit | 7c53c2618d7dd9f04f309d195835e6abfc7e0e52 (patch) | |
| tree | f1e89e78fffebd2e74b455a01004337eeebcafb4 /tests/regressiontests/forms/error_messages.py | |
| parent | 4decf03f9ceb0162a7de757cdb3985100faf028b (diff) | |
Fixed #10968 - Form.errors should use Form.error_class.
Thanks for report and initial patch, matehat.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@11498 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests/forms/error_messages.py')
| -rw-r--r-- | tests/regressiontests/forms/error_messages.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/regressiontests/forms/error_messages.py b/tests/regressiontests/forms/error_messages.py index ec91b57a06..b7224dbde0 100644 --- a/tests/regressiontests/forms/error_messages.py +++ b/tests/regressiontests/forms/error_messages.py @@ -358,4 +358,42 @@ ValidationError: [u'NOT A LIST OF VALUES'] Traceback (most recent call last): ... ValidationError: [u'4 IS INVALID CHOICE'] + +# Subclassing ErrorList ####################################################### + +>>> from django.utils.safestring import mark_safe +>>> +>>> class TestForm(Form): +... first_name = CharField() +... last_name = CharField() +... birthday = DateField() +... +... def clean(self): +... raise ValidationError("I like to be awkward.") +... +>>> class CustomErrorList(util.ErrorList): +... def __unicode__(self): +... return self.as_divs() +... def as_divs(self): +... if not self: return u'' +... return mark_safe(u'<div class="error">%s</div>' +... % ''.join([u'<p>%s</p>' % e for e in self])) +... + +This form should print errors the default way. + +>>> form1 = TestForm({'first_name': 'John'}) +>>> print form1['last_name'].errors +<ul class="errorlist"><li>This field is required.</li></ul> +>>> print form1.errors['__all__'] +<ul class="errorlist"><li>I like to be awkward.</li></ul> + +This one should wrap error groups in the customized way. + +>>> form2 = TestForm({'first_name': 'John'}, error_class=CustomErrorList) +>>> print form2['last_name'].errors +<div class="error"><p>This field is required.</p></div> +>>> print form2.errors['__all__'] +<div class="error"><p>I like to be awkward.</p></div> + """ |
