的Django 1.11.4分页并获得参数
我必须建立与方法的搜索形式=“获取”。 搜索表单有很多形式。 然后,这个输入值作为get参数在url中传输。
问题是如何获得分页。该数据库包含数千个对象。分页是必要的。
这是个什么文件告诉我们:
https://docs.djangoproject.com/en/1.11/topics/pagination/#using-paginator-in-a-view
,提示是这样的:
<a href="?page={{ contacts.previous_page_number }}">previous</a>
但是,这会毁了所有的GET参数。
我已成功地发明是:
<a href="{{ request.get_full_path }}&page={{ object_list.previous_page_number }}">previous</a>
这工作。但这是愚蠢的。如果一个向前和向后切换页面,它会产生这样结尾的网址:
page=2&page=3&page=2
我不得不看看谷歌是如何管理这个问题。在url的中间,他们开始= 30。并更改此参数:开始= 20,开始= 40。所以,他们切换。
你能帮我理解在Django中如何保存参数和切换页面吗?当然,以一种优雅的方式。
我有一个模板标签我在Github上重用此目的:https://gist.github.com/benbacardi/d6cd0fb8c85e1547c3c60f95f5b2d5e1 – Ben