From f92ac845a9c75992120a5b5b219e607c19d3f0aa Mon Sep 17 00:00:00 2001 From: SaJH Date: Wed, 8 May 2024 22:41:33 +0900 Subject: [PATCH] Fixed #35436 -- Fixed displaying Unicode chars in forms.HStoreField. --- django/contrib/postgres/forms/hstore.py | 2 +- tests/postgres_tests/test_hstore.py | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/django/contrib/postgres/forms/hstore.py b/django/contrib/postgres/forms/hstore.py index 6a20f7b729..f824f78c3e 100644 --- a/django/contrib/postgres/forms/hstore.py +++ b/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): diff --git a/tests/postgres_tests/test_hstore.py b/tests/postgres_tests/test_hstore.py index 2aaad637c6..cac3eb742a 100644 --- a/tests/postgres_tests/test_hstore.py +++ b/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):