diff --git a/django/forms/models.py b/django/forms/models.py
index 8084e16c8d..b4d29c3886 100644
--- a/django/forms/models.py
+++ b/django/forms/models.py
@@ -847,10 +847,7 @@ class BaseModelFormSet(BaseFormSet, AltersData):
                         # poke error messages into the right places and mark
                         # the form as invalid
                         errors.append(self.get_unique_error_message(unique_check))
-                        form._errors[NON_FIELD_ERRORS] = self.error_class(
-                            [self.get_form_error()],
-                            renderer=self.renderer,
-                        )
+                        self.process_unique_error(form, unique_check, row_data)
                         # Remove the data from the cleaned_data dict since it
                         # was invalid.
                         for field in unique_check:
@@ -883,10 +880,7 @@ class BaseModelFormSet(BaseFormSet, AltersData):
                         # poke error messages into the right places and mark
                         # the form as invalid
                         errors.append(self.get_date_error_message(date_check))
-                        form._errors[NON_FIELD_ERRORS] = self.error_class(
-                            [self.get_form_error()],
-                            renderer=self.renderer,
-                        )
+                        self.process_date_error(form, date_check, data)
                         # Remove the data from the cleaned_data dict since it
                         # was invalid.
                         del form.cleaned_data[field]
@@ -896,6 +890,18 @@ class BaseModelFormSet(BaseFormSet, AltersData):
         if errors:
             raise ValidationError(errors)
 
+    def process_unique_error(self, form, unique_check, row_data):
+        form._errors[NON_FIELD_ERRORS] = self.error_class(
+            [self.get_form_error()],
+            renderer=self.renderer,
+        )
+
+    def process_date_error(self, form, date_check, data):
+        form._errors[NON_FIELD_ERRORS] = self.error_class(
+            [self.get_form_error()],
+            renderer=self.renderer,
+        )
+
     def get_unique_error_message(self, unique_check):
         if len(unique_check) == 1:
             return gettext("Please correct the duplicate data for %(field)s.") % {
