diff options
Diffstat (limited to 'django/forms')
| -rw-r--r-- | django/forms/forms.py | 3 | ||||
| -rw-r--r-- | django/forms/utils.py | 5 |
2 files changed, 7 insertions, 1 deletions
diff --git a/django/forms/forms.py b/django/forms/forms.py index a601467e18..81c59dea33 100644 --- a/django/forms/forms.py +++ b/django/forms/forms.py @@ -191,7 +191,8 @@ class BaseForm: def _html_output(self, normal_row, error_row, row_ender, help_text_html, errors_on_separate_row): "Output HTML. Used by as_table(), as_ul(), as_p()." - top_errors = self.non_field_errors() # Errors that should be displayed above all fields. + # Errors that should be displayed above all fields. + top_errors = self.non_field_errors().copy() output, hidden_fields = [], [] for name, field in self.fields.items(): diff --git a/django/forms/utils.py b/django/forms/utils.py index 5ae137943a..fbe79f1142 100644 --- a/django/forms/utils.py +++ b/django/forms/utils.py @@ -92,6 +92,11 @@ class ErrorList(UserList, list): def as_data(self): return ValidationError(self.data).error_list + def copy(self): + copy = super().copy() + copy.error_class = self.error_class + return copy + def get_json_data(self, escape_html=False): errors = [] for error in self.as_data(): |
