summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2015-08-07 13:06:56 -0400
committerTim Graham <timograham@gmail.com>2015-08-07 13:26:17 -0400
commita7b7f27c05244d69a11545261eb3bbd73791b3d2 (patch)
tree1b01f614e38d0437fd39303c133a2a0c3d41661b /django
parent6ed613b2a52f8719b92b94d815e9f997d262412c (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.py15
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)