summaryrefslogtreecommitdiff
path: root/django/forms
diff options
context:
space:
mode:
Diffstat (limited to 'django/forms')
-rw-r--r--django/forms/models.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/django/forms/models.py b/django/forms/models.py
index be59dbe4a0..d220e3c90f 100644
--- a/django/forms/models.py
+++ b/django/forms/models.py
@@ -1562,7 +1562,12 @@ class ModelChoiceField(ChoiceField):
if isinstance(value, self.queryset.model):
value = getattr(value, key)
value = self.queryset.get(**{key: value})
- except (ValueError, TypeError, self.queryset.model.DoesNotExist):
+ except (
+ ValueError,
+ TypeError,
+ self.queryset.model.DoesNotExist,
+ ValidationError,
+ ):
raise ValidationError(
self.error_messages["invalid_choice"],
code="invalid_choice",
@@ -1640,7 +1645,7 @@ class ModelMultipleChoiceField(ModelChoiceField):
self.validate_no_null_characters(pk)
try:
self.queryset.filter(**{key: pk})
- except (ValueError, TypeError):
+ except (ValueError, TypeError, ValidationError):
raise ValidationError(
self.error_messages["invalid_pk_value"],
code="invalid_pk_value",