Textile import optional.
[fnpdjango.git] / fnpdjango / utils / settings.py
index 39b0a25..1f5ea2d 100644 (file)
@@ -1,9 +1,20 @@
 """
 Utilities for global settings.
 """
+from django.utils.encoding import python_2_unicode_compatible
+from django.utils.functional import Promise
 
+# Use Python3 str.
+try:
+    unicode
+except NameError:
+    pass
+else:
+    str = unicode
 
-class LazyUGettextLazy(object):
+
+@python_2_unicode_compatible
+class LazyUGettextLazy(Promise):
     """You can use it to internationalize strings in settings.
 
     Just import this class as gettext.
@@ -14,11 +25,11 @@ class LazyUGettextLazy(object):
     def __init__(self, text):
         self.text = text
 
-    def __unicode__(self):
+    def __str__(self):
         if not self.real:
             from django.utils.translation import ugettext_lazy
             LazyUGettextLazy._ = staticmethod(ugettext_lazy)
             LazyUGettextLazy.real = True
-        return unicode(self._(self.text))
+        return str(self._(self.text))