我正在使用django-pagination对我的页面进行分页。它工作得很好,但我想设置
<link rel="prev" href="http://www.example.com/foo/?page=1" />
<link rel="next" href="http://www.example.com/foo/?page=3" />
到了<head>
,喜欢的是google推荐的。
但是我发现没有办法这样做(至少没有额外的查询)。首先我尝试pagination/templates/pagination.html
用这样的东西编辑
{% block extra_head %}
<link rel=... ... />
{% endblock %}
哪个当然不起作用({% paginate %}
标签包含 pagination.html,它不会扩展 my layout.html
)。接下来,我尝试将 /foo/ 视图的模板修改为类似这样的内容(添加{% block extra_head %}
):
{# foo.html #}
{% extends "layout.html" %}
{% block content %}
{% load pagination_tags %}
{% autopaginate object_list %}
{% paginate %}
{% for obj in object_list %}
{{ obj }}
{% endfor %}
{% paginate %}
{% endblock %}
{% block extra_head %}
<link rel="prev" href="?page={{ page_obj.previous_page_number }}"/>
{% endblock %}
但这也不起作用,因为 page_obj 变量仅在{% block content %}
. 一个可以打电话
{% autopaginate object_list %}
在extra_head
块中,但这意味着对数据库的额外打击(可能还有其他我不知道的副作用)。有没有一种优雅的方法来解决这个问题,理想情况下尽可能干燥?
编辑:我正在使用 django 1.2。