31 декабря 2008. UnicodeDecodeError в Django

Всегда, всегда во всех стрингах с русскими буквами ставьте префикс “u” для того, чтобы конвертировать его в юникод. Даже если Вам кажется, что ошибка не может произрастать из этого, все равно проставьте.

У меня не сохранялись объекты через inline, прописанный к стандартному django.contrib.auth.User – после отсылки данных POST’ом вылезала ошибка UnicodeDecodeError от обработчика Django. Причем, если попытка сохранения велась не через этот inline, то все прекрасно сохранялось. Я уже хотел переопределить методы save() для всех моделей и вставить туда принудительную конвертацию в юникод, но отчего-то взял, да и поставил во всех стрингах префикс “u”:

<…>
hide = models.BooleanField(u“Спрятан”,default = False)
<…>

И произошло чудо. Объекты стали сохранятся из инлайнов!
Мистика.

P.S. С наступающим 2009-м годом! Желаю свершения всех желаний и минимального времяпровождения в дебаге ;)


Тэги: ,

0
Разных мыслей по теме

Выразите свои мысли по теме.