Форум сайта python.su
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)
{% 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 %}
Офлайн
Попробуй убрать при создании контекста запятую =/ при создании объекта она там не нужна. Плюс в первой строке в конце она тоже не нужна. Если ты в питоне пишешь:
i = 1,
Отредактировано (Дек. 30, 2009 13:14:08)
Офлайн
filter - возвращает QuerySet, а в шаблоне вывод как для строки.
Можно так попробовать, если нужна только одна запись:
c = Context({'content': query[0],},)
Офлайн
Попробовал с 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 %}
Офлайн
А вот если делать стандартным выводом
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
Офлайн
Ведь вроде все делаю как в документации?
Офлайн
Удалил Джангу , которая шла вместе с мандривой. Скачал версию 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
Офлайн
А почему вы от нас модель скрываете?
Офлайн
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
Офлайн
У вас блок и тег одинаковые имена имеет.
Офлайн