Browse Source

Fixed #35436 -- Fixed displaying Unicode chars in forms.HStoreField.

SaJH 10 months ago
parent
commit
f92ac845a9
2 changed files with 8 additions and 1 deletions
  1. 1 1
      django/contrib/postgres/forms/hstore.py
  2. 7 0
      tests/postgres_tests/test_hstore.py

+ 1 - 1
django/contrib/postgres/forms/hstore.py

@@ -20,7 +20,7 @@ class HStoreField(forms.CharField):
 
     def prepare_value(self, value):
         if isinstance(value, dict):
-            return json.dumps(value)
+            return json.dumps(value, ensure_ascii=False)
         return value
 
     def to_python(self, value):

+ 7 - 0
tests/postgres_tests/test_hstore.py

@@ -410,6 +410,13 @@ class TestFormField(PostgreSQLSimpleTestCase):
         form_w_hstore = HStoreFormTest({"f1": '{"a": 2}'}, initial={"f1": {"a": 1}})
         self.assertTrue(form_w_hstore.has_changed())
 
+    def test_prepare_value(self):
+        field = forms.HStoreField()
+        self.assertEqual(
+            field.prepare_value({"aira_maplayer": "Αρδευτικό δίκτυο"}),
+            '{"aira_maplayer": "Αρδευτικό δίκτυο"}',
+        )
+
 
 class TestValidator(PostgreSQLSimpleTestCase):
     def test_simple_valid(self):