Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Имена файлов в Джанго на русском языке. [RSS Feed]

#1 Янв. 21, 2015 13:33:37

MiK
Зарегистрирован: 2014-10-30
Сообщения: 191
Репутация: +  -1  -
Профиль   Отправить e-mail  

Имена файлов в Джанго на русском языке.

Добрых суток, всем зашедшим!
Третий вопрос из моей серии:
Возможно ли сделать имена файлов в Джанго на русском языке?

Сейчас, при попытке отрендерить шаблон с русскими буквами в имени выдаёт такую ошибку:

UnicodeEncodeError at /
'ascii' codec can't encode characters in position 35-39: ordinal not in range(128)

При этом сам питон ведёт себя очень дружелюбно к языкам.

Офлайн

#2 Янв. 21, 2015 14:08:57

GreyZmeem
От: Киев
Зарегистрирован: 2013-12-03
Сообщения: 147
Репутация: +  34  -
Профиль   Отправить e-mail  

Имена файлов в Джанго на русском языке.

Linux Python2 Django 1.6. Все работает:

class ProfileIndexView(BaseProfileView):
    # template_name = 'profile/index.html'
    template_name = u'profile/индекс.html'

Офлайн

#3 Янв. 21, 2015 14:47:18

MiK
Зарегистрирован: 2014-10-30
Сообщения: 191
Репутация: +  -1  -
Профиль   Отправить e-mail  

Имена файлов в Джанго на русском языке.

GreyZmeem
Рендерить пробовал?

Офлайн

#4 Янв. 21, 2015 14:49:25

GreyZmeem
От: Киев
Зарегистрирован: 2013-12-03
Сообщения: 147
Репутация: +  34  -
Профиль   Отправить e-mail  

Имена файлов в Джанго на русском языке.

Да.

Офлайн

#5 Янв. 21, 2015 14:56:44

MiK
Зарегистрирован: 2014-10-30
Сообщения: 191
Репутация: +  -1  -
Профиль   Отправить e-mail  

Имена файлов в Джанго на русском языке.

GreyZmeem
Спасибо, буду тогда с кодировками разбираться.
Я думал, что нельзя.

Офлайн

#6 Янв. 21, 2015 15:28:51

MiK
Зарегистрирован: 2014-10-30
Сообщения: 191
Репутация: +  -1  -
Профиль   Отправить e-mail  

Имена файлов в Джанго на русском языке.

Я вот только не до конца понял… Это у меня название файла в ‘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=

В чём может быть проблема?

Офлайн

#7 Янв. 21, 2015 16:09:15

GreyZmeem
От: Киев
Зарегистрирован: 2013-12-03
Сообщения: 147
Репутация: +  34  -
Профиль   Отправить e-mail  

Имена файлов в Джанго на русском языке.

Покажите полный traceback вашей ошибки

Офлайн

#8 Янв. 21, 2015 16:17:41

MiK
Зарегистрирован: 2014-10-30
Сообщения: 191
Репутация: +  -1  -
Профиль   Отправить e-mail  

Имена файлов в Джанго на русском языке.

пожалуйста

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')

Офлайн

#9 Янв. 22, 2015 06:23:28

MiK
Зарегистрирован: 2014-10-30
Сообщения: 191
Репутация: +  -1  -
Профиль   Отправить e-mail  

Имена файлов в Джанго на русском языке.

Вообщем, поразбирался… На виндовсе, действительно получилось использовать русские имена, без проблем. А вот почему он здесь использует ascii кодек, мне вообще непонятно.
Как можно исправить ситуацию?

ПС: системой стоит ubuntu, на облаке.
ППС: поразбирался ещё немного, оказалось, что файлы с английскими именами действительнов кодировке 7 7bit ansii, а вот русские в utf-8. Но выхода всё равно не вижу….

Отредактировано MiK (Янв. 22, 2015 07:02:23)

Офлайн

#10 Янв. 22, 2015 10:18:22

MiK
Зарегистрирован: 2014-10-30
Сообщения: 191
Репутация: +  -1  -
Профиль   Отправить e-mail  

Имена файлов в Джанго на русском языке.

Подскажите, хотябы где копать: питон, линукс, джанго?
Знает, кто-нибудь?

Офлайн

  • Начало
  • » Django
  • » Имена файлов в Джанго на русском языке.[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version