From f480d5d3ed8234aea876f7eaf8a9154e5bf09d16 Mon Sep 17 00:00:00 2001 From: saJaeHyukc Date: Sun, 9 Mar 2025 00:42:16 +0900 Subject: Fixed #36201 -- Caught ValidationError in ModelChoiceField/ModelMultipleChoiceField.clean(). Signed-off-by: saJaeHyukc --- django/forms/models.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'django/forms') 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", -- cgit v1.3