Форум сайта python.su
Добрых суток, всем зашедшим!
Третий вопрос из моей серии:
Возможно ли сделать имена файлов в Джанго на русском языке?
Сейчас, при попытке отрендерить шаблон с русскими буквами в имени выдаёт такую ошибку:
UnicodeEncodeError at /
'ascii' codec can't encode characters in position 35-39: ordinal not in range(128)
Офлайн
Linux Python2 Django 1.6. Все работает:
class ProfileIndexView(BaseProfileView): # template_name = 'profile/index.html' template_name = u'profile/индекс.html'
Офлайн
GreyZmeem
Рендерить пробовал?
Офлайн
Да.
Офлайн
GreyZmeem
Спасибо, буду тогда с кодировками разбираться.
Я думал, что нельзя.
Офлайн
Я вот только не до конца понял… Это у меня название файла в ‘ascii’ или это джанго просит ‘ascii’?
В джанго вроде везде utf-8 прописаны, по умолчанию.
Вот мой
$locale:
LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE=“ru_RU.UTF-8”
LC_NUMERIC=“ru_RU.UTF-8”
LC_TIME=“ru_RU.UTF-8”
LC_COLLATE=“ru_RU.UTF-8”
LC_MONETARY=“ru_RU.UTF-8”
LC_MESSAGES=“ru_RU.UTF-8”
LC_PAPER=“ru_RU.UTF-8”
LC_NAME=“ru_RU.UTF-8”
LC_ADDRESS=“ru_RU.UTF-8”
LC_TELEPHONE=“ru_RU.UTF-8”
LC_MEASUREMENT=“ru_RU.UTF-8”
LC_IDENTIFICATION=“ru_RU.UTF-8”
LC_ALL=
Офлайн
Покажите полный traceback вашей ошибки
Офлайн
пожалуйста
UnicodeEncodeError at /
'ascii' codec can't encode characters in position 35-39: ordinal not in range(128)
Request Method: GET
Request URL:
Django Version: 1.7.3
Exception Type: UnicodeEncodeError
Exception Value:
'ascii' codec can't encode characters in position 35-39: ordinal not in range(128)
Exception Location: /python3-env/lib/python3.4/site-packages/django/template/loaders/filesystem.py in load_template_source, line 38
Python Executable: /python3-env/bin/python3
Python Version: 3.4.2
Python Path:
['/python3-env/orion',
‘/python3-env/bin’,
‘/python3-env/lib/python3.4’,
‘/python3-env/lib/python3.4/plat-i386-linux-gnu’,
‘/python3-env/lib/python3.4/lib-dynload’,
‘/usr/lib/python3.4’,
‘/usr/lib/python3.4/plat-i386-linux-gnu’,
‘/python3-env/lib/python3.4/site-packages’]
Server time: Срд, 21 Янв 2015 17:16:15 +0300
Unicode error hint
The string that could not be encoded/decoded was: ates/карта.html
Traceback Switch to copy-and-paste view
/python3-env/lib/python3.4/site-packages/django/core/handlers/base.py in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs) …
▶ Local vars
/python3-env/orion/orion/views.py in главная_страница
сырой_шаблон = get_template('карта.html')
Офлайн
Вообщем, поразбирался… На виндовсе, действительно получилось использовать русские имена, без проблем. А вот почему он здесь использует ascii кодек, мне вообще непонятно.
Как можно исправить ситуацию?
ПС: системой стоит ubuntu, на облаке.
ППС: поразбирался ещё немного, оказалось, что файлы с английскими именами действительнов кодировке 7 7bit ansii, а вот русские в utf-8. Но выхода всё равно не вижу….
Отредактировано MiK (Янв. 22, 2015 07:02:23)
Офлайн
Подскажите, хотябы где копать: питон, линукс, джанго?
Знает, кто-нибудь?
Офлайн