I think instead the `__unicode__` method should be renamed to `__str__` (and should return text; that is a ``unicode`` instance on Python 2 and a ``str`` instance on Python 3), and the ``python_2_unicode_compatible`` decorator should be applied; see https://docs.djangoproject.com/en/dev/topics/python3/#str-and-unicode-methods