Форум сайта python.su
Может уже и разбирали где то, но не смог найти.
ГАЕ+Джанго 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’
Офлайн
проблема решена.
Исправить в вьюшке код:
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” )
Офлайн