Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 21, 2011 15:34:10

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

POST метод и кириллица

Может уже и разбирали где то, но не смог найти.

ГАЕ+Джанго 0.96

Делаю формы в шаблоне:


<form action='' method='post'>

<label for=“title”>Title</label>
<input type=“text” name=“title” value=“” id=“title”>
<br>
<label for=“ptext”>Text</label>
<input type=“text” name=“ptext” value=“” id=“ptext”>
<input type=“submit” value=“Post” />

</form>



Вьюшка:
p = Post() #модель
p.title = request.POST.get('title', ‘')
p.ptext = request.POST.get(’ptext', ‘')
p.published = True
if p.title != ’' and p.ptext != '':
p.put()

Когда вводишь латинские буквы, то все в порядке, он записывает в БД и в последующем выводит, а когда пишешь кириллицей, то выдает ошибку:
'ascii' codec can't decode byte 0xd1 in position 0: ordinal not in range(128)

А в Request information:
POST:
ptext ‘\xd1\x82\xd0\xb5\xd0\xb5\xd1\x81\xd1\x82’
title ‘\xd1\x82\xd0\xb5\xd1\x81\xd1\x82’



Офлайн

#2 Янв. 25, 2011 13:40:42

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

POST метод и кириллица

проблема решена.
Исправить в вьюшке код:
p.title = request.POST.get('title', ‘')
p.ptext = request.POST.get(’ptext', ‘')

на

p.title = unicode(request.POST.get(’title', ‘'), “utf-8”)
p.ptext = unicode(request.POST.get(’ptext', ''), “utf-8” )



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version