diff --git a/modoboa/admin/models/domain.py b/modoboa/admin/models/domain.py
index 50a04d97b..af0d10c24 100644
--- a/modoboa/admin/models/domain.py
+++ b/modoboa/admin/models/domain.py
@@ -315,6 +315,7 @@ class MXQuerySet(models.QuerySet):
return self.exists()
+@python_2_unicode_compatible
class MXRecord(models.Model):
"""A model used to store MX records for Domain."""
@@ -331,8 +332,8 @@ class MXRecord(models.Model):
return False
return bool(param_tools.get_global_parameter("valid_mxs").strip())
- def __unicode__(self):
- return u"{0.name} ({0.address}) for {0.domain} ".format(self)
+ def __str__(self):
+ return "{0.name} ({0.address}) for {0.domain} ".format(self)
class DNSBLQuerySet(models.QuerySet):
diff --git a/modoboa/core/models.py b/modoboa/core/models.py
index 3bdaa7a22..a118d52e2 100644
--- a/modoboa/core/models.py
+++ b/modoboa/core/models.py
@@ -405,6 +405,7 @@ def populate_callback(user, group="SimpleUsers"):
sender="populate_callback", user=user)
+@python_2_unicode_compatible
class ObjectAccess(models.Model):
user = models.ForeignKey(User)
content_type = models.ForeignKey(ContentType)
@@ -415,7 +416,7 @@ class ObjectAccess(models.Model):
class Meta(object):
unique_together = (("user", "content_type", "object_id"),)
- def __unicode__(self):
+ def __str__(self):
return "%s => %s (%s)" % (
self.user, self.content_object, self.content_type
)
diff --git a/modoboa/lib/form_utils.py b/modoboa/lib/form_utils.py
index e2b7144b1..b869ba183 100644
--- a/modoboa/lib/form_utils.py
+++ b/modoboa/lib/form_utils.py
@@ -13,7 +13,7 @@ from django.forms.fields import Field
from django.forms.widgets import RadioSelect
from django.forms.widgets import RadioChoiceInput
from django.shortcuts import render
-from django.utils.encoding import force_text, force_str
+from django.utils.encoding import python_2_unicode_compatible, force_text, force_str
from django.utils.html import conditional_escape
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext as _, ugettext_lazy
@@ -370,17 +370,18 @@ class TabForms(object):
#
+@python_2_unicode_compatible
class CustomRadioInput(RadioChoiceInput):
"""Custom radio input."""
- def __unicode__(self):
+ def __str__(self):
if "id" in self.attrs:
label_for = ' for="%s"' % self.attrs["id"]
else:
label_for = ""
choice_label = conditional_escape(force_text(self.choice_label))
return mark_safe(
- u""
+ ""
% (label_for, self.tag(), choice_label)
)