{% ifnotequal cur_page 1 %}                        |<                                                    <                                            {% else %}                        |<                        <                    {% endifnotequal %}                                            {{ cur_page }}                                        {% ifnotequal cur_page total_page %}                                                    {{ cur_page|add:1 }}                                                                            {{ cur_page|add:2 }}                                            {% endifnotequal %}                    {% if next %}                                                    >                                            {% else %}                        >                    {% endif %}                    {% ifnotequal cur_page total_page %}                                                    >|                                            {% else %}                        >|                    {% endifnotequal %}
点击到最后一页,效果如下:
但实际上只有9页,判断next(即当前页是否存在下一页)标签时 加 3 溢出 到10页。
1、要求显示的页码范围数为3,不足的为2或者1;
请教该如何处理?
                                                                                                                                                                                                 回复内容:                                                                                                      {% ifnotequal cur_page 1 %}                        |<                                                    <                                            {% else %}                        |<                        <                    {% endifnotequal %}                                            {{ cur_page }}                                        {% ifnotequal cur_page total_page %}                                                    {{ cur_page|add:1 }}                                                                            {{ cur_page|add:2 }}                                            {% endifnotequal %}                    {% if next %}                                                    >                                            {% else %}                        >                    {% endif %}                    {% ifnotequal cur_page total_page %}                                                    >|                                            {% else %}                        >|                    {% endifnotequal %}
点击到最后一页,效果如下:
但实际上只有9页,判断next(即当前页是否存在下一页)标签时 加 3 溢出 到10页。
1、要求显示的页码范围数为3,不足的为2或者1;
请教该如何处理?
在paginator上再封装一层spagination ,views调用
obj = model.object.filter(条件)pagin = spagination.wraper(obj, pagesize, page)return pagin
spagination类代码
#coding=utf-8from django.core.paginator import paginatorclass spagination(object):    def __init__(self, total, page=1, perpage=10):        self.total = total        self.pages = self.total / perpage + 1 if (self.total % perpage) > 0 else self.total / perpage        self.page = page        self.perpage = perpage        self.prev_num = page-1 if page > 1 else none        self.next_num = page+1 if page*perpage  0:                left_list.insert(0, self.page - p)        for p in range(1,right_edge):            if self.page + p  0:                    left_list.insert(0, left_list[0]-1)        return left_list+[self.page]+right_list    def setitems(self, items):        self.items = items    @classmethod    def wraper(cls, objs, limit, current_page):        paginator = paginator(objs, limit)        items = paginator.page(current_page)        pagin = spagination(paginator.count, current_page, limit)        pagin.setitems(items)        return pagin
template代码
    {%if pagin.has_prev %}        上页    {%endif%}    首页    {%for p in pagin.visible_pages%}        {%if p != 1 and p != pagin.pages%}            {{p}}        {%endif%}    {%endfor%}    尾页    {%if pagin.has_next %}        下页    {%endif%}
可以再加一层判断,判断是否超出
   
 
   