summaryrefslogtreecommitdiff
path: root/django/forms
diff options
context:
space:
mode:
authorsaJaeHyukc <wogur981208@gmail.com>2025-03-09 00:42:16 +0900
committerSarah Boyce <42296566+sarahboyce@users.noreply.github.com>2025-03-10 13:01:02 +0100
commitf480d5d3ed8234aea876f7eaf8a9154e5bf09d16 (patch)
tree7452369196dcaf3b5d276bda08ece7e6addbff48 /django/forms
parent9120a19c4ecb643111b073dd1069e6b410a03c23 (diff)
Fixed #36201 -- Caught ValidationError in ModelChoiceField/ModelMultipleChoiceField.clean().
Signed-off-by: saJaeHyukc <wogur981208@gmail.com>
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",