Skip to content

Commit

Permalink
Fixed #16479 - Forms generated from formsets use ErrorList instead of…
Browse files Browse the repository at this point in the history
… supplied error_class

Patch with tests from charettes, updated.
  • Loading branch information
vicould authored and spookylukey committed Oct 13, 2012
1 parent cc83a4a commit 7a44dc5
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
6 changes: 5 additions & 1 deletion django/forms/formsets.py
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,11 @@ def _construct_form(self, i, **kwargs):
"""
Instantiates and returns the i-th form instance in a formset.
"""
defaults = {'auto_id': self.auto_id, 'prefix': self.add_prefix(i)}
defaults = {
'auto_id': self.auto_id,
'prefix': self.add_prefix(i),
'error_class': self.error_class,
}
if self.is_bound:
defaults['data'] = self.data
defaults['files'] = self.files
Expand Down
10 changes: 10 additions & 0 deletions tests/regressiontests/forms/tests/formsets.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

from django.forms import Form, CharField, IntegerField, ValidationError, DateField
from django.forms.formsets import formset_factory, BaseFormSet
from django.forms.util import ErrorList
from django.test import TestCase


Expand Down Expand Up @@ -847,6 +848,15 @@ def test_formset_nonzero(self):
self.assertTrue(formset)


def test_formset_error_class(self):
# Regression tests for #16479 -- formsets form use ErrorList instead of supplied error_class
class CustomErrorList(ErrorList):
pass

formset = FavoriteDrinksFormSet(error_class=CustomErrorList)
self.assertEqual(formset.forms[0].error_class, CustomErrorList)


data = {
'choices-TOTAL_FORMS': '1', # the number of forms rendered
'choices-INITIAL_FORMS': '0', # the number of forms with initial data
Expand Down

0 comments on commit 7a44dc5

Please sign in to comment.