Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 5, 2016 20:27:07

Vladislav1
Зарегистрирован: 2016-01-05
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

UnicodeEncodeError at /admin...

Здравствуйте!
Не очень люблю задавать глупые вопросы на форумах, но поскольку нигде не смог найти ответа, осмелюсь спросить.
Я новичок в 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

Офлайн

#2 Янв. 6, 2016 14:30:23

Vladislav1
Зарегистрирован: 2016-01-05
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

UnicodeEncodeError at /admin...

Всё разобрался.
Проблема оказалась не в админке, а в моих моделях.
Просто вместо функции __str__ следовало использовать __unicode__,
и после этого заработало.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version