Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Ошибка coercing to Unicode: need string or buffer, tuple found [RSS Feed]

#1 Дек. 30, 2009 11:42:58

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

Ошибка coercing to Unicode: need string or buffer, tuple found

view.py:

def main(request):
query = Page.objects.filter(mode='1'),
t = loader.get_template('page.html')
c = Context({'content': query,},)
return t.render(c)
page.html:
{% block content %}
<div class="post">
<div class="entry">
{{ content }}
</div>
</div>
{% endblock %}
тукст ошибки:
Caught an exception while rendering: coercing to Unicode: need string or buffer, tuple found

Original Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/django/template/debug.py", line 71, in render_node
result = node.render(context)
File "/usr/lib/python2.5/site-packages/django/template/debug.py", line 87, in render
output = force_unicode(self.filter_expression.resolve(context))
File "/usr/lib/python2.5/site-packages/django/utils/encoding.py", line 74, in force_unicode
s = unicode(str(s), encoding, errors)
File "/usr/lib/python2.5/site-packages/django/db/models/query.py", line 71, in __repr__
return repr(data)
File "/usr/lib/python2.5/site-packages/django/db/models/base.py", line 328, in __repr__
u = unicode(self)
TypeError: coercing to Unicode: need string or buffer, tuple found
Template error

In template /home/antonio/web/newagro/www/agrostok/templates/site/page.html, error at line 4
Caught an exception while rendering: coercing to Unicode: need string or buffer, tuple found
1 {% block content %}
2 <div class="post">
3 <div class="entry">
4 {{ content }}
5 </div>
6 </div>
7 {% endblock %}
Помогите разобраться. А то я уже всю голову сломал. Уже все перепробовал



Офлайн

#2 Дек. 30, 2009 11:58:12

expee
От:
Зарегистрирован: 2009-12-21
Сообщения: 197
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка coercing to Unicode: need string or buffer, tuple found

Попробуй убрать при создании контекста запятую =/ при создании объекта она там не нужна. Плюс в первой строке в конце она тоже не нужна. Если ты в питоне пишешь:

i = 1,
, то это будет кортеж с 1 элементом.



Отредактировано (Дек. 30, 2009 13:14:08)

Офлайн

#3 Дек. 30, 2009 12:01:44

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Ошибка coercing to Unicode: need string or buffer, tuple found

filter - возвращает QuerySet, а в шаблоне вывод как для строки.
Можно так попробовать, если нужна только одна запись:

c = Context({'content': query[0],},)
А ещё лучше, в таком случае, использовать objects.get.
Если запись должна быть не одна - надо организовывать цикл.

Офлайн

#4 Дек. 30, 2009 12:19:24

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

Ошибка coercing to Unicode: need string or buffer, tuple found

Попробовал с get:

query = Page.objects.get(mode='1')
t = loader.get_template('page.html')
c = Context({'content': query})
Запись есть. Одна

Ошибка:
Template error

In template /home/antonio/web/newagro/www/agrostok/templates/site/page.html, error at line 4
Caught an exception while rendering: coercing to Unicode: need string or buffer, tuple found
1 {% block content %}
2 <div class="post">
3 <div class="entry">
4 {{ content }}
5 </div>
6 </div>
7 {% endblock %}



Офлайн

#5 Дек. 30, 2009 13:15:20

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

Ошибка coercing to Unicode: need string or buffer, tuple found

А вот если делать стандартным выводом

urls.py

(r'', list_detail.object_list, main),
view.py

main = {
"queryset" : Page.objects.all(),
"template_name" : "page.html",
}
page.html

{% block content %}
<div class="post">
<div class="entry">
{% for list_detail in object_list %}
<li>{{ list_detail.name }} -> {{ list_detail.id }}</li>
{% endfor %}
</div>
</div>
{% endblock %}
ТО все выводится корректно. Что не так тогда в первом случае? Не пойму. Шаблон тот же

А если так :
def main(request):
query = Page.objects.all()
c = Context({'content': query})
return t.render(c)
то :
TypeError at /

'dict' object is not callable

Request Method: GET
Request URL: http://127.0.0.1:8080/
Exception Type: TypeError
Exception Value:

'dict' object is not callable

Exception Location: /home/antonio/web/newagro/www/agrostok/../agrostok/page/urls.py in <module>, line 11
Python Executable: /usr/bin/python
Python Version: 2.5.4
Python Path: ['/usr/lib/python2.5/site-packages/mptt/', '/usr/lib/python2.5/site-packages/mptt/', '/home/antonio/web/newagro/www/agrostok', '/usr/lib/python2.5/site-packages/MySQL_python-1.2.3c1-py2.5-linux-i686.egg', '/usr/lib/python2.5/site-packages/flup-1.0.1-py2.5.egg', '/home/antonio/web/newagro/www/agrostok', '/usr/lib/ooo-2.1/program', '/usr/lib/python25.zip', '/usr/lib/python2.5/lib-dynload', '/usr/lib/python2.5/site-packages/Numeric', '/usr/lib/python2.5/site-packages/PIL', '/usr/lib/python2.5/site-packages', '/usr/lib/python2.5', '/usr/lib/python2.5/plat-linux2', '/usr/lib/python2.5/lib-tk', '/usr/lib/python2.5/site-packages/gtk-2.0']
Server time: Wed, 30 Dec 2009 05:18:20 -0600



Офлайн

#6 Дек. 30, 2009 13:16:37

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

Ошибка coercing to Unicode: need string or buffer, tuple found

Ведь вроде все делаю как в документации?



Офлайн

#7 Дек. 30, 2009 14:44:19

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

Ошибка coercing to Unicode: need string or buffer, tuple found

Удалил Джангу , которая шла вместе с мандривой. Скачал версию 1.1.1
Теперь вот что

view.py

def main(request):
query = Page.objects.get(mode='1')
t = loader.get_template('page.html')
c = RequestContext(request, {'content': query})
return t.render(c)
page.html

{% block content %}
<div class="post">
<div class="entry">
{{ content.name }}
{{ content.content }}
</div>
</div>
{% endblock %}
Результат:

TypeError at /

'SafeUnicode' object is not callable

Request Method: GET
Request URL: http://127.0.0.1:8080/
Exception Type: TypeError
Exception Value:

'SafeUnicode' object is not callable

Exception Location: /usr/lib/python2.5/site-packages/django/core/handlers/base.py in get_response, line 92
Python Executable: /usr/bin/python
Python Version: 2.5.4
Python Path: ['/usr/lib/python2.5/site-packages/mptt/', '/usr/lib/python2.5/site-packages/mptt/', '/home/antonio/web/newagro/www/agrostok', '/usr/lib/python2.5/site-packages/MySQL_python-1.2.3c1-py2.5-linux-i686.egg', '/usr/lib/python2.5/site-packages/flup-1.0.1-py2.5.egg', '/home/antonio/web/newagro/www/agrostok', '/usr/lib/ooo-2.1/program', '/usr/lib/python25.zip', '/usr/lib/python2.5/lib-dynload', '/usr/lib/python2.5/site-packages/Numeric', '/usr/lib/python2.5/site-packages/PIL', '/usr/lib/python2.5/site-packages', '/usr/lib/python2.5', '/usr/lib/python2.5/plat-linux2', '/usr/lib/python2.5/lib-tk', '/usr/lib/python2.5/site-packages/gtk-2.0']
Server time: Wed, 30 Dec 2009 06:35:48 -0600
Что никто не встречался с этим?



Офлайн

#8 Дек. 30, 2009 17:56:47

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Ошибка coercing to Unicode: need string or buffer, tuple found

А почему вы от нас модель скрываете?



Офлайн

#9 Дек. 30, 2009 18:36:02

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

Ошибка coercing to Unicode: need string or buffer, tuple found

models.py

class Page(models.Model):
name = models.CharField(max_length=30, )
content = models.TextField(max_length=500, )
mode = models.IntegerField(choices=(('1', 'main'),), help_text="Выберите тип страницы")

def __unicode__(self):
return self.name



Офлайн

#10 Дек. 30, 2009 19:18:18

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Ошибка coercing to Unicode: need string or buffer, tuple found

У вас блок и тег одинаковые имена имеет.

Офлайн

  • Начало
  • » Django
  • » Ошибка coercing to Unicode: need string or buffer, tuple found[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version