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-м годом! Желаю свершения всех желаний и минимального времяпровождения в дебаге ;)