diff options
| author | Tim Graham <timograham@gmail.com> | 2015-08-07 13:06:56 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2015-08-07 13:26:17 -0400 |
| commit | a7b7f27c05244d69a11545261eb3bbd73791b3d2 (patch) | |
| tree | 1b01f614e38d0437fd39303c133a2a0c3d41661b /django | |
| parent | 6ed613b2a52f8719b92b94d815e9f997d262412c (diff) | |
Fixed #25233 -- Fixed HStoreField.has_changed() handling of initial values.
Thanks Simon Charette for review.
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/postgres/forms/hstore.py | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/django/contrib/postgres/forms/hstore.py b/django/contrib/postgres/forms/hstore.py index 3dc70ab2ab..bf562c0e8f 100644 --- a/django/contrib/postgres/forms/hstore.py +++ b/django/contrib/postgres/forms/hstore.py @@ -23,13 +23,14 @@ class HStoreField(forms.CharField): def to_python(self, value): if not value: return {} - try: - value = json.loads(value) - except ValueError: - raise ValidationError( - self.error_messages['invalid_json'], - code='invalid_json', - ) + if not isinstance(value, dict): + try: + value = json.loads(value) + except ValueError: + raise ValidationError( + self.error_messages['invalid_json'], + code='invalid_json', + ) # Cast everything to strings for ease. for key, val in value.items(): value[key] = six.text_type(val) |
