在django中,一般通過自帶的paginator進行分頁,具體內容可以見官方文件。
我們在對資料進行迴圈時,如果需要標上序號,可以採用forloop方法,如下所示:
}
具體使用細節,可以見我之前的部落格:採用forloop對模板中的資料進行排序
針對以上思路,具體操作如下:
1、自定義乘法過濾器
原理見官方文件,這裡只給出步驟:
首先在你的專案下,建立乙個templatetags
的包,裡面新建乙個py檔案,名字任意,本人的如下:
在blog_tags.py
中寫入:
from django import template
register = template.library()
@register.filter
defmultiply
(value, num):
#定義乙個乘法過濾器
return (value-1)*num
在模板中,可以這麼寫:
...}
這裡page.number代表當前頁面的頁碼,也就是第幾頁,對應的是剛才定義的過濾器multiply
函式中的value
值。 5對應的是函式中的num值。
這樣,在其基礎上加上forloop.counter即可,如下:
}
2、將setting.py中的常量新增到模板中上面的**中顯示的每頁數目是5,當對其改變的話,還需要將模板中的都改過來,如果頁面多的話,改起來很麻煩,不符合程式設計原則。我們可以將值在setting.py中設定,然後新增到上下文管理器中,這樣在整個模板中就可以用了。
本方法參考於:
首先,在setting.py中設定每頁的數量
haystack_search_results_per_page = 5
#分頁數目
from django.conf import settings
defpagenums
(request):
return
然後,再將其在setting.py中的context_processors
進行繫結,如下:
templates = [,},
]
最後,直接在模板中就可以使用該變數haystack_search_results_per_page
如下:
}
如此,即可實現翻頁後序號的連續。 django分頁學習
django中分頁的類是 paginator 需要匯入 from django.core.paginator import paginator 匯入分頁的類 l range 1,31 page obj paginator l,10 paginator的建構函式 傳乙個列表l,每頁顯示10條資料 pr...
django 實現分頁功能
分頁效果 檢視 1 coding utf 8 2 from django.shortcuts import render,get object or 404 3 from django.core.paginator import paginator,pagenotaninteger,emptypag...
輕鬆實現Django分頁
pip install djangorestframework安裝csrf第三方庫之後,我們就可以使用自帶分頁器paginator來進行內容的分頁 如果取不到分頁物件時,設定頁碼為1 page int request.get.get page 1 取分頁物件,orders為需要分頁的物件,一般為mo...