From fc56a5df31859ba54e01223a226fa1b01f9361bd Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Thu, 2 Feb 2012 09:55:37 +0100 Subject: [PATCH] Don't convert parameter values to str objects, leave them as unicode ones and use 'unicode_escape' before storing them to database. see #200 --- lib/parameters.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/lib/parameters.py b/lib/parameters.py index dfe27217a..93af32cbf 100644 --- a/lib/parameters.py +++ b/lib/parameters.py @@ -177,7 +177,7 @@ def save_admin(name, value, app=None): p = Parameter() p.name = fullname if p.value != value: - p.value = str(value).encode("string_escape").strip() + p.value = value.encode("unicode_escape").strip() p.save() return True @@ -209,7 +209,7 @@ def get_admin(name, app=None): p = Parameter.objects.get(name="%s.%s" % (app, name)) except Parameter.DoesNotExist: return _params[app]["A"][name]["deflt"] - return p.value.decode("string_escape") + return p.value.decode("unicode_escape") def get_user(user, name, app=None): from models import UserParameter @@ -221,11 +221,7 @@ def get_user(user, name, app=None): p = UserParameter.objects.get(user=user, name="%s.%s" % (app, name)) except UserParameter.DoesNotExist: return _params[app]["U"][name]["deflt"] - try: - dvalue = p.value.decode("string_escape") - except ValueError: - dvalue = p.value - return dvalue + return p.value.decode("unicode_escape") def get_app_option(lvl, name, dflt, app=None): if app is None: