Форум сайта python.su
Здравствуйте!
Не очень люблю задавать глупые вопросы на форумах, но поскольку нигде не смог найти ответа, осмелюсь спросить.
Я новичок в Django, недавно начал его изучать, но вот столкнулся с одной странной проблемой, решения которой и даже чётких причин никак не могу найти.
Суть вопроса в следующем.
При попытке записать через админку русский текст и сохранить его в базе данных приложения (через админку) возникает ошибка неправильной кодировки. А именно, пишет в Exception Value: ‘ascii’ code can't encode characters in position 0-4: ordinal not in range(128). То есть тупо не воспринимает кириллицу. Если написать по-английски (латиницей), то всё нормально работает. Если забить поля таблиц базы данных через СУБД русскими символами, то отображает в браузере нормально, но при попытки изменить их через админку выдаёт ту же самую ошибку.
При этом такая фигня только в админке и только при записи в текстовые поля и их сохранении. Непонимание программой кодировки в других местах успешно устранялось включением в начало файлов строки
# -*- coding: utf-8 -*-
Здесь же это не проходит. Даже если написать эту строку в начало admin.py
Расскажите пожалуйста, как с этим бороться. Есть ли какое-то простое решение. А то это ж не дело, если админка русский текст не принимает.
Доп. информация:
ОС: Linux Ubuntu
браузер: firefox
версия Django 1.9.1
версия Python 2.7.6
Офлайн
Всё разобрался.
Проблема оказалась не в админке, а в моих моделях.
Просто вместо функции __str__ следовало использовать __unicode__,
и после этого заработало.
Офлайн