我使用Tornado框架。在Tornado模板中可以使用字典和列表类型,但当我在模板中使用对象时,它呈现为内存地址。
为了详细说明,我导入了Solrpy这个包来使用。在Django项目中,我想引入分页器(paginator)。我把paginator.page(Solrpage)这个对象传给了tornado模板,但它没有正常工作。我无法使用Solrpage的任何方法,结果它只显示了一个内存地址。
下面是我使用分页器的方法,这也是我实际使用的方式:
从django.core.paginator导入Paginator、InvalidPage和EmptyPage
定义一个listing函数,接收请求: contact_list = Contacts.objects.all() # 获取所有联系人 paginator = Paginator(contact_list, 25) # 每页显示25个联系人
# Make sure page request is an int. If not, deliver first page.
try:
page = int(request.GET.get('page', '1'))
except ValueError:
page = 1
# If page request (9999) is out of range, deliver last page of results.
try:
contacts = paginator.page(page)
except (EmptyPage, InvalidPage):
contacts = paginator.page(paginator.num_pages)
return render_to_response('list.html', {"contacts": contacts})
{% for contact in contacts.object_list %}
{# 每个"contact"都是一个Contact模型对象。 #}
{{ contact.full_name|upper }}
...
{% endfor %}
{% if contacts.has_previous %} 上一页 {% endif %} 当前是第 {{ contacts.number }} 页,共 {{ contacts.paginator.num_pages }} 页。 ....
1 个回答
2
你的类定义需要一个 __str__( self )
方法,这样在模板中显示的时候,才能呈现出其他内容,而不是一个随机的地址。