summaryrefslogtreecommitdiff
path: root/django/forms
diff options
context:
space:
mode:
authorEtienne Chové <chove@crans.org>2019-03-13 10:02:50 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2019-10-11 13:28:09 +0200
commite7cdb0cd7eb5eb677af8dae7bfc6845186f861b0 (patch)
tree0814b43200e1b54cb1995b46a8a03609d0f6dc45 /django/forms
parenta12f9cd95a24573612daaf844ec97d4aed12446d (diff)
Fixed #30014 -- Fixed ModelChoiceField validation when initial value is a model instance.
Thanks Carlton Gibson for reviews.
Diffstat (limited to 'django/forms')
-rw-r--r--django/forms/models.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/django/forms/models.py b/django/forms/models.py
index c7e7e50885..8b8be56b3b 100644
--- a/django/forms/models.py
+++ b/django/forms/models.py
@@ -1248,6 +1248,8 @@ class ModelChoiceField(ChoiceField):
return None
try:
key = self.to_field_name or 'pk'
+ if isinstance(value, self.queryset.model):
+ value = getattr(value, key)
value = self.queryset.get(**{key: value})
except (ValueError, TypeError, self.queryset.model.DoesNotExist):
raise ValidationError(self.error_messages['invalid_choice'], code='invalid_choice')