Юникод в Django Messages Framework - PullRequest
1 голос
/ 26 октября 2011

У меня есть флэш-сообщение в Django, которое построено с использованием стандартного поля char из модели членства.

messages.add_message(request,
                     messages.INFO,
                     '{0} membership created'.format(membership.name))

Это работает просто отлично, если memberships.name не содержит символы Юникода, в этом случае я получаю UnicodeEncodeError.Я могу исправить это, добавив строку с u для создания строки в юникоде, но я не понимаю, почему это необходимо, поскольку docs заявляет, что Django предполагает, что все строки байтов находятся в UTF-8.Должен ли я просматривать свое приложение и менять все строки на строки в юникоде?

Ответы [ 2 ]

1 голос
/ 26 октября 2011

Это на самом деле не проблема с Джанго.Похоже, что вы пойманы ошибкой в ​​способе str.format обработки аргументов Unicode, Python Issue 7300

Один обходной путь - использование строки Unicode, другой - использование% форматирование.

'%s membership created' % membership.name
u'{0} membership created'.format(membership.name))
0 голосов
/ 26 октября 2011

Да. За исключением тех, которые на самом деле являются байтовыми строками, потому что они были прочитаны из файла или около того.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...