Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 8, 2009 11:25:48

Alexandr
От:
Зарегистрирован: 2009-11-08
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Русские символы в Django

Начал изучать Django по книге Форсье, изучение осложняется плохим знанием Python. Однако почти всё понятно по ходу дела. Несколько вопросов гуру для моего убыстрения :)
1) Как отобразить русские символы в шаблоне? Как только забиваю в шаблон на html что-то по-русски, python сразу ругается. А ведь это только всего лишь шаблон….
2) Есть ли фильтры для вывода даты по-русски? Например

{{ post.timestamp|date:"l, F jS" }}
выдает на странице название месяцев и дней недели по английски.



Офлайн

#2 Ноя. 8, 2009 11:47:18

Fandal
От:
Зарегистрирован: 2009-05-24
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Русские символы в Django

1) Вчера столкнулся с подобной проблемой, оказалось что кодировка базы данных (mysql) была latin1 а запрос отправлял в utf8. Решилось сменой кодировки базы. Помогли ребята с этого форума, только через джаббер, спасибо им ещё раз!
2) в settings.py установи

LANGUAGE_CODE = 'ru' 
TIME_ZONE = 'Europe/Moscow' #(ну или свой часовой пояс, если другой)
у меня с твоими настройками даты отображается так
Суббота, Ноябрь 7th



Отредактировано (Ноя. 8, 2009 12:19:41)

Офлайн

#3 Ноя. 8, 2009 12:05:45

Alexandr
От:
Зарегистрирован: 2009-11-08
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Русские символы в Django

По второму вопросу всё сработало отлично, спасибо!
А по первому - проблема в другом, тут с БД все нормально, данные из БД отображаются хорошо.
А вот шаблон не терпит никаких руcских букв, ни просто на странице, ни даже в тегах <title>. Повторюсь, при работе шаблона он прекрасно выводит из БД записи по русски.



Офлайн

#4 Ноя. 8, 2009 13:12:04

Fandal
От:
Зарегистрирован: 2009-05-24
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Русские символы в Django

у меня нормально в шаблоне уживаются латинские и русские буквы, может у Вас системная кодировка не utf8?



Офлайн

#5 Ноя. 8, 2009 16:20:49

Alexandr
От:
Зарегистрирован: 2009-11-08
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Русские символы в Django

Fandal
может у Вас системная кодировка не utf8?
Хы, я под Виндовсом пока локально изучаю.



Офлайн

#6 Ноя. 9, 2009 10:33:29

vvivan
От:
Зарегистрирован: 2009-03-08
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Русские символы в Django

может быть добавлять в файл шаблона мета-тег с кодировкой?

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />



Офлайн

#7 Ноя. 9, 2009 10:42:11

Alexandr
От:
Зарегистрирован: 2009-11-08
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Русские символы в Django

vvivan
может быть добавлять в файл шаблона мета-тег с кодировкой?
Конечно пробовал. Только это сообщение об ошибке в python а не в браузере при исполнении, т.е. сервер уже сразу не понимает такой файл с русскими символами.



Офлайн

#8 Ноя. 10, 2009 19:54:13

Alexandr
От:
Зарегистрирован: 2009-11-08
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Русские символы в Django

lorien
Как именно ругается?
TemplateSyntaxError at /blog/

Caught an exception while rendering: ('utf8', '<html>\n<style type="text/css">\nbody { color: #efd; background: #453; padding: 0 5em; margin: 0 }\nh1 {padding: 1em 6em; background: #675}\nh2 {color: #3bf8; border-top: 1px dotted #fff; margin-top: 2em}\np {margin: 1em 0}\n</style>\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n<title>\xcd\xe0\xe7\xe2\xe0\xed\xe8\xe5</title>\n</head>\n <body>\n <h1>this is example</h1>\n {% block content %}\n {% endblock %}\n </body>\n </html>\n', 312, 314, 'invalid data')

Request Method: GET
Request URL: http://127.0.0.1:8000/blog/
Exception Type: TemplateSyntaxError
Exception Value:

Caught an exception while rendering: ('utf8', '<html>\n<style type="text/css">\nbody { color: #efd; background: #453; padding: 0 5em; margin: 0 }\nh1 {padding: 1em 6em; background: #675}\nh2 {color: #3bf8; border-top: 1px dotted #fff; margin-top: 2em}\np {margin: 1em 0}\n</style>\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n<title>\xcd\xe0\xe7\xe2\xe0\xed\xe8\xe5</title>\n</head>\n <body>\n <h1>this is example</h1>\n {% block content %}\n {% endblock %}\n </body>\n </html>\n', 312, 314, 'invalid data')

Exception Location: C:\Python26\lib\site-packages\django\template\debug.py in render_node, line 81
Python Executable: C:\Python26\python.exe
Python Version: 2.6.4
а шаблон выглядит так:
<html>
<style type="text/css">
body { color: #efd; background: #453; padding: 0 5em; margin: 0 }
h1 {padding: 1em 6em; background: #675}
h2 {color: #3bf8; border-top: 1px dotted #fff; margin-top: 2em}
p {margin: 1em 0}
</style>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Название</title>
</head>
<body>
<h1>this is example</h1>
{% block content %}
{% endblock %}
</body>
</html>
Если я делаю внутри тега title английский текст, то всё окей.



Офлайн

#9 Ноя. 10, 2009 21:38:05

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2267
Репутация: +  41  -
Профиль   Отправить e-mail  

Русские символы в Django

у вас кодировка шаблона похоже не utf, редактор настройте

Офлайн

#10 Ноя. 10, 2009 21:41:56

Alexandr
От:
Зарегистрирован: 2009-11-08
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Русские символы в Django

lorien
Даже не знаю, а пишите вы этот текст русский в utf-8 кодировке? Никогда с таким не сталкивался.
Пишу под Виндовсом, соответственно в виндошной русской кодировке.
Мне кажется проблема в настройках Питона или django, а где подкрутить - не знаю…

slav0nic
у вас кодировка шаблона похоже не utf, редактор настройте
да я даже не в каком-то редакторе пишу, а просто F4 в файловом менеджере )))



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version