django分页后后查询条件丢失

刚学习Django写了一个搜索的视图函数,想对搜索内容进行分页,现在有个问题,搜索内容提交后可以正常分页并显示第一页,选择第二个页时由于GET内容没传过去页面就显示不出来... 刚学习Django写了一个搜索的视图函数,想对搜索内容进行分页,现在有个问题,搜索内容提交后可以正常分页并显示第一页,选择第二个页时由于GET内容没传过去页面就显示不出来,请问哪个大神有好的解决办法 这是我的控件部分:查询部分
<form action="." method="GET"> <fieldset id="search_fieldset" style="paddng:20px;background:#3CF; border:#ccc 1px solid"> <input type="text" name="q" value="{{query | escape}}" class="input_text"> <input type="submit" value="Search" class="search_button"> </fieldset> </form>

<div class = "pagination">
<span class="step-links">
{% if results.has_previous %}
{# 这里需要将原来的条件传递过来 #}
<a href="?page={{results.previous_page_number}}&q={{}}">previous</a>
{% endif %}

<span class = "current">
Page{{results.number}} of {{results.paginator.num_pages}}
</span>

{% if results.has_next %}
<a href="?page={{apps.next_page_number}}&q={{}}">next</a>
{% endif %}
</span>
</div>

网上有人说需要把查询条件放在 <a href="?page={{results.previous_page_number}}&q={{}}">previous</a>的&q={{}}中,但我不知道这里面放什么,哪位大侠教一下,十分感谢
展开
 我来答
匿名用户
2015-04-08
展开全部

给你一个Pager分页类的源码,你参考着用吧:

class Pager:
    def __init__(self,size,offset,request):
        self.offset = offset;
        self.path = request.path;
        self.query_dict = request.GET.copy()
        self.size = size;
    def has_previous(self):
        if self.offset>0:
            return True
        else:
            return False
    def has_next(self):
        if self.size>20:
            return True
        else:
            return False
    def previous_url(self):
        if self.has_previous():
            self.query_dict["offset"]=self.offset-20
            return self.path+"?"+self.query_dict.urlencode()
        else:
            return None
    def next_url(self):
        if self.has_next():
            self.query_dict["offset"]=self.offset+20
            return self.path+"?"+self.query_dict.urlencode()
        else:
            return None
intesybtine
2015-02-01 · 贡献了超过148个回答
知道答主
回答量:148
采纳率:0%
帮助的人:22.4万
展开全部
把查询条件传递给“下一页”即可,粘贴你下一页的代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式