вторник, 19 февраля 2013 г.

Django Admin Static files UnicodeDecodeError Windows

Если вы работаете в Windows, используете Python 2.7, Django 1.3 и при загрузке админки по адресу http://127.0.0.1:8000/admin/ не подгружаются стили, а при переходе по адресу http://127.0.0.1:8000/static/admin/css/base.css вы видите внизу страницы сообщение об ошибке:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 0: ordinal not in range(128)



То это означает, что в реестре Windows находятся кирилические символы. Обычно они попадают туда после установки QuickTime.

Баг, описанный в данной статье, касается только Python 2.7, в котором модуль mimetypes стал обращаться к реестру Windows для пополнения собственной базы mime-типов. В предыдущих версиях Python этого не было.

Для устранения данной проблемы вам необходимо нажать в Windows на кнопку Пуск (Start) и выбрать опцию Выполнить (Run).



Далее в появившемся окне введите regedit и нажмите на кнопку OK.



В результате откроется окно редактора реестра Windows.



В этом окне вам необходимо раскрыть последовательность папок

HKEY_CLASSES_ROOT\MIME\Database\Content Type

Внутри папки Content Type  в само низу вы найдете папки, имеющие русские буквы в названии, такие как "аудио" и "видео".

Например.

аудио/AMR
аудио/x-gsm
видео/x-m4v

Вы должны удалить эти папки или исправить их названия, заменив русские символы на английские. Например, "audio" и "video".

После этого исправления стили для оформления админки Django станут подгружаться.

(Для тех у кого в registry Windows 7 нет русских символов, но проблема осталась, переименуйте сетевое имя компьютера с русского на английский язык. )

Комментариев нет:

Отправить комментарий